導航:首頁 > 操作系統 > androidstudiohost

androidstudiohost

發布時間:2024-10-14 15:56:53

① 如何使用android Studio開發/調試Android自帶系統應用

開發調試環境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源碼
由於AS是基於IntelliJ IDEA開發的,所以本文也適用於IntelliJ IDEA
一、修改Android Studio(以下簡稱AS)的內存配置

因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK, 這樣可以確保使用源碼里的庫文件

並將其作為要使用的SDK的java SDK。如下圖

三、生成導入AS所需配置文件(*.ipr)
編譯源碼(為了確保生成了.java文件,如R.java;如果編譯過,則無需再次編譯)
②檢查out/host/linux-x86/framework/目錄下是否有idegen.jar
如果idegen.jar不存在,執行:
mmm development/tools/idegen/

在5.0.1的源碼中會生成res.java的文件夾,導致idegen.jar運行時拋FileNotFoundException,這是idegen的代碼不夠嚴謹造成的。
我的分享里有修改這個bug的patch,或者直接使用我分享的idegen.jar。
③執行
development/tools/idegen/idegen.sh

等待出現類似下面的結果:
Read excludes: 5ms
Traversed tree: 44078ms

這時會在源碼的根目錄下生成android.ipr和android.iml兩個IntelliJ IDEA(AS是基於IntelliJ IDEA社區版開發的)的配置文件
Tips:
AS在導入代碼時比較慢,建議先修改android.iml,將自己用不到的代碼exclude出去.可以仿照過濾.repo文件夾的語法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
這樣在導入時就會跳過abi和art文件夾.過濾的越多,AS的處理速度就會越快.
④在AS中打開源碼根目錄下新生成的android.ipr

如果在導入時AS出現

則建議按照其給定的解決方法來解決(網址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具體內容如下圖:

四、解決源碼中跳轉錯誤問題
①為當前工程設置正確的SDK和JDK

②設置'Moles'的依賴

先將所有依賴刪掉,只留下上圖'1'所指向的兩個(注意:這里刪除全部只是為了方便。如果確實用到了.jar,在將它們的路徑添加進來就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
點擊上圖中'2'指向的'+'並選擇上圖'3'指向的'Jars or directories'選項,依次將frameworks和external文件夾添加進來.如:

其它版本的代碼在添加frameworks時可能會顯示成:

沒有關系,只是顯示問題,點擊OK還是會把frameworks路徑添加進去的.
如果還有代碼跳轉錯誤,請仿照上面的步驟將相應代碼的路徑或jar文件添加到其Dependencies標簽頁中即可.
五、DEBUG源碼
我們可以通過給剛導入的工程在'Moles'中添加'Android Framework'來讓AS將它作為一個Android工程,從而方便我們調試代碼.

可以按照上圖中'1'和'2'來添加Android Framework支持.

在代碼中加斷點,然後選擇'Run'->'Attach debugger to Android process'或者直接點擊下圖所示的圖標
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.
六、其它
代碼中很多地方提示Call requires API Level x.... 出現這個問題是因為AS將我們的工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.
我們只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。
也可以考慮使用build.gradle來解決該問題。

② android studio怎麼新建tabhost

具體如下:以下通過TabHost實現android選項卡。

main.xml布局文件:

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayoutandroid:id="@+id/tab01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageViewandroid:id="@+id/iv01"
android:scaleType="fitXY"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/andy"/>
<TextViewandroid:id="@+id/tv01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24dip"
android:text="Android的創造者:AndyRubin"/>
</LinearLayout>
<LinearLayoutandroid:id="@+id/tab02"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageViewandroid:id="@+id/iv02"
android:scaleType="fitXY"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bill"/>
<TextViewandroid:id="@+id/tv02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24dip"
android:text="Java創造者之一:BillJoy"/>
</LinearLayout>
<LinearLayoutandroid:id="@+id/tab03"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageViewandroid:id="@+id/iv03"
android:scaleType="fitXY"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/torvalds"/>
<TextViewandroid:id="@+id/tv03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24dip"
android:text="Linux之父:LinusTorvalds"/>
</LinearLayout>
</LinearLayout>

TabHostActivity類:


packagecom.ljq.activity;
importandroid.app.TabActivity;
importandroid.os.Bundle;
importandroid.view.LayoutInflater;
importandroid.widget.TabHost;
{
privateTabHosttab=null;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
tab=this.getTabHost();
LayoutInflater.from(this).inflate(R.layout.main,tab.getTabContentView(),true);
tab.addTab(tab.newTabSpec("選項卡一").setIndicator("選項卡一",
getResources().getDrawable(R.drawable.png1)).setContent(R.id.tab01));
tab.addTab(tab.newTabSpec("選項卡二").setIndicator("選項卡二",
getResources().getDrawable(R.drawable.png2)).setContent(R.id.tab02));
tab.addTab(tab.newTabSpec("選項卡三").setIndicator("選項卡三",
getResources().getDrawable(R.drawable.png3)).setContent(R.id.tab03));
}
}

現在都使用tablayout和viewpager的布局方式了,例子截圖。

關於這個的用法請參考android學習手冊,例子、源碼、文檔全部搞定,採用androidstudo的目錄結構,360手機助手中下載。上面是截圖。

③ Android studio涓璈TTP鍗忚浠g悊鎬庝箞璁劇疆

Android studio鐨勬槸璋鋒瓕鐨勪漢鍛樿繘琛屽紑鍙戠殑宸ュ叿錛岄偅涔堝湪浣跨敤鐨刟ndroid studio鐨勪腑瑕佽繘琛屼笅杞界浉鍏崇殑鍐呭癸紝鏄涓嶈兘鐩存帴榪涜屼笅杞紸ndroid studio鐨勫唴瀹癸紝鍙浠ラ氳繃瀵笰ndroid studio鐨勪唬鐞嗚劇疆涔嬪悗錛屽氨鍙浠ュ笰ndroid studio鐨勫悇縐嶄笂鐨勬彃浠訛紝鐢ㄦ潵涓嬭澆鐩稿叧鐨勫唴瀹廣

1銆佸笰ndroid studio鐨勭浉鍏崇殑浠g悊璁劇疆錛岃劇疆鐨勫彲浠ラ氳繃澶氫釜鏂瑰紡榪涜岃劇疆錛屽彲浠ラ氳繃嬈㈣繋鐨勭晫闈涓璁劇疆錛屾垨鑰呮墦寮Android studio涓寮鍙戠殑鐣岄潰涓錛岀劧鍚庤繘琛岀偣鍑籄ndroid studio涓鑿滃崟涓鐨刦ile鐨勯夐」銆

2銆佽繘琛岀偣鍑Android studio鐨刦ile鐨勮彍鍗曚箣鍚錛屽氨浼氬脊鍑轟簡涓涓涓嬫媺鐨勮彍鍗曢夐」涓榪涜岄夋嫨setting鐨勯夐」

3銆佽繘鍏ュ埌浜唖etting鐨勮劇疆鐨勭晫闈涓涔嬪悗錛岃繘琛岀偣鍑誨垪琛ㄤ腑鐨appearance behavior鐨勯夐」銆

4銆佺偣鍑appearance behavior瀹岋紝灝變細灞曞紑榪涜宻ystem setting鐨勯夐」涔嬪悗閫夐」鍐呯殑HTTP proxy鐨勯夐」銆

5銆佽繘鍏ュ埌浜咹TTP proxy鐨勯夐」錛岀浉鍏崇殑榛樿ゆ槸鍏抽棴鐨勶紝榪涜屽嬀閫変笂manual proxy configuration鐨勯夐」

6銆佸浗鍐呯幇鍦ㄦ湁寰堝氱殑闀滃儚鐨勭綉鍧鐨勪俊鎮錛屽湪鐧懼害涓鎼滅儲Androiddevtools鐨勪俊鎮錛屽彲浠ユ煡鎵懼埌鐩稿叧鐨勭綉鍧錛屽湪host name涓杈撳叆闀滃儚緗戝潃錛岀偣鍑籓K銆傝繖鏍峰氨鍙浠ヨ繘琛屼嬌鐢ˋndroid studio涓鏇存柊鐩稿叧鐨勪笢瑗誇簡

④ Android studio TabHost添加了5個tab,每個tab下的EditText點擊沒有任何反應,不能獲得輸入焦點

1、安卓下輸入框只要不是不可用狀態,點擊是一定能獲得焦點的,你可以檢查enable屬性
2、可能是獲得了焦點沒彈輸入法,你認為沒獲得焦點

閱讀全文

與androidstudiohost相關的資料

熱點內容
51單片機控制pwm程序 瀏覽:299
汽車壓縮機串氣可以修么 瀏覽:633
30天學會全部語法pdf 瀏覽:52
java反編譯修補bug 瀏覽:614
如何修改伺服器ftp地址 瀏覽:119
雲伺服器如何用c盤分d盤 瀏覽:597
蘋果的單片機 瀏覽:804
程序員喝麻辣燙 瀏覽:140
安卓怎麼玩微軟的游戲 瀏覽:54
安卓如何在桌面同時操作好幾個app 瀏覽:72
美國app在哪裡看 瀏覽:320
java文件內容追加 瀏覽:622
為什麼下載壓縮包會變成文檔 瀏覽:727
自我安慰程序員的話 瀏覽:369
android備份程序 瀏覽:713
建設銀行亞洲手機app哪裡下載 瀏覽:502
桌面有一個文件夾圖標變透明了 瀏覽:382
vb文件如何加密 瀏覽:238
中行選擇編譯環境 瀏覽:248
編程打左右雙引號 瀏覽:719