有,我知道一款,叫做AIDE , AIDE集成開發(fā)環(huán)境AIDE Android Java IDE:不僅手機適用,平板也能用。在編輯完成后,能直接將代碼編譯成可執(zhí)行的APK文件,功能非常全面,可編輯各種語言,對學(xué)習(xí)者或者工作都有很大的幫助。個人不太建議用于專業(yè)工作,感覺在手機上不太好敲代碼,錯誤可能出得比較多。
我們提供的服務(wù)有:網(wǎng)站設(shè)計、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、達日ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的達日網(wǎng)站制作公司
這個軟件自動糾錯,智能教學(xué),能讓菜鳥隨時隨地寫java,而且安裝程序集成jdk,加起來不到100m,推薦給你,你下載可以下載 for java 版的,下面是我手機上用的截圖。不過在手機上編寫代碼實在不推薦,很不方便。
在Android上怎樣實現(xiàn)JAVA和JS交互呢?Android的webview是基于webkit內(nèi)核的,webview中集成了js與java互調(diào)的接口函數(shù),通過addJavas criptInterface方法,可以將Java的類注冊進webkit,給網(wǎng)頁上的js進行調(diào)用,而且還可以通過loadUrl方法是給webkit傳遞一個URL,供瀏覽器來進行解析,實現(xiàn)Java和js交互。
要想運行網(wǎng)頁上的js腳本,webview必須設(shè)置支持Javas cript。
Java代碼
1mWebview.getSettings().setJavas criptEnabled(true);
然后是設(shè)置webview要加載的網(wǎng)頁:
web的網(wǎng)頁:webView.loadUrl("");
本地的網(wǎng)頁:webView.loadUrl(""); //本地的存放在:assets文件夾中
webview做完基本的初始化后我們還要要給它,加進一個回調(diào)的代理類Javas criptInterface,并給它一個調(diào)用的名稱:ncp
Java代碼
1mWebView.addJavas criptInterface(new Javas criptInterface(),"ncp");
Javas criptInterface可以是一個普通的Java類,類實現(xiàn)的方法,均可被js回調(diào):
Java代碼
final class Javas criptInterface {
public int callOnJs() {
return 1000;
}
public void callOnJs2(String mode) {
//TODO
}
}
Java要調(diào)用js的方法,只需知道js的方法名稱即可:
Java代碼
1mWebView.loadUrl("javas cript:onSaveCallback()");
改成這樣
EditText edt = (EditText)MyAndroidActivity.this.findViewById(R.id.edt);
TextView txt = (TextView)MyAndroidActivity.this.findViewById(R.id.txt);
你在String.xml中的那個helloWorld只是一個字符串的鍵值對和這里沒有半點關(guān)系
手機上理論上是可以進行java語言編程的,需要下載模擬器,里面內(nèi)置java所需的編譯環(huán)境,還有編輯器。
但不建議用手機編程,因為本身屏幕、內(nèi)存、鍵盤敲打速度都不及電腦方便。
你可以使用以下代碼代替你的 ACTION_CALL(推薦):
Intent?intent?=?new?Intent(Intent.ACTION_DIAL);
也可以參考這里,在 manifest?中添加
android.permission.PHONE_CALL
的權(quán)限,并且在撥打電話之前檢驗權(quán)限:
//檢查是否已經(jīng)給了權(quán)限
int?checkpermission=?ContextCompat.checkSelfPermission(getApplicationContext(),Manifest.permission.ACCESS_FINE_LOCATION);
if(checkpermission!=PackageManager.PERMISSION_GRANTED){?//沒有給權(quán)限,申請
//參數(shù)分別是當(dāng)前活動,權(quán)限字符串?dāng)?shù)組,requestcode
ActivityCompat.requestPermissions(MainActivity.this,new?String[]{Manifest.permission.ACCESS_FINE_LOCATION},?1);
//?暫時使用?DIAL?代替?CALL
Intent?intent?=?new?Intent(Intent.PHONE_DIAL);
intent.setData(Uri.parse("tel:"+number));
startActivity(intent);
}?else?{
//?直接使用?CALL
Intent?intent?=?new?Intent(Intent.PHONE_CALL);
intent.setData(Uri.parse("tel:"+number));
startActivity(intent);
}
然后添加一個方法:
@Override
public?void?onRequestPermissionsResult(int?requestCode,?@NonNull?String[]?permissions,?@NonNull?int[]?grantResults)?{
super.onRequestPermissionsResult(requestCode,?permissions,?grantResults);
//grantResults數(shù)組與權(quán)限字符串?dāng)?shù)組對應(yīng),里面存放權(quán)限申請結(jié)果
if(grantResults[0]==?PackageManager.PERMISSION_GRANTED){
//?放已授權(quán)的處理方法
}else{
//?放拒絕授權(quán)的處理方法
Toast.makeText(MainActivity.this,"拒絕授權(quán)",Toast.LENGTH_SHORT).show();
}
}
參考:CSDN