編譯adb
① Android SDK Tools,Platform-tools,Build-tools分別有什麼作用
platform-tools包含開發app的平台依賴的開發和調試工具,包括 adb、fastboot等
android sdk里的各目錄作用
AVD Manager.exe:虛擬機管理工具,用於建立和管理虛擬機。
SDK Manager.exe:sdk管理工具,用於管理、下載sdk、sdk工具,能及擴展工具
tools目錄:包括測試、調試、第三方工具。模擬器、數據管理工具等。
build-tools目錄:編譯工具目錄,包含了轉化為davlik虛擬機的編譯工具。
包括
aapt(Android Asset Packaging Tool):編譯應用程序的資源文件(包括AndroidManifest.xml和你的Activities的xml文件),生成R.java文件,這樣你就可以從你的java代碼中引用資源。
aidl:把.aidl 介面轉換成java介面.
dx:轉化.class中間代碼為dvlik中間代碼,所有經過java編譯的生成.class文件都需要此工具進行轉換,最後打包進apk文件中.
dexmp:mp devlik中間代碼
platform-tools目錄:包含開發app的平台依賴的開發和調試工具。
包括
adb:android調試工具
fastboot:boot工具
platforms/<android-version>目錄:包括android的平台。包含在android.jar庫中。你必須指一個平台為你的編譯目標。
system-images目錄:編譯好的系統映像。模擬器可以直接載入。
sources目錄:androidsdk的源碼目錄
samples目錄:sdk例子
② 如何使用android sdk tools
關鍵是了解每個工具的用途,具體的用法 ,到時候用到的再慢慢學!
Android模擬器(Android Emulator )
它是在你的計算機上運行的一個虛擬移動設備。你可以使用模擬器來在一個實際的Android運行環境下設計,調試和測試你的應用程序。
Android調試橋(Android Debug Bridge (adb) )
Adb 工具可以讓你在模擬器或設備上安裝應用程序的.apk文件,並從命令行訪問模擬器或設備。你也可以用它把Android模擬器或設備上的應用程序代碼和一個標準的調試器連接在一起。
層級觀察器 (Hierarchy Viewer )
層級觀察器工具允許你調試和優化你的用戶界面。它用可視的方法把你的視圖(view)的布局層次展現出來,此外還給當前界面提供了一個具有像素柵格(grid)的放大鏡觀察器,這樣你就可以正確地布局了。
9-patch
Draw 9-patch工具允許你使用所見即所得(WYSIWYG)的編輯器輕松地創建NinePatch圖形。它也可以預覽經過拉伸的圖像,高亮顯示內容區域。
Eclipse IDE Android 開發工具插件(Android Development Tools Plugin for the Eclipse IDE)
ADT插件大大擴展了Eclipse集成環境功能,使得生成和調試你的Android應用程序既容易又迅速。如果你使用Eclipse,ADT插件可以讓你難以置信地加快開發Android應用程序的 速度。
你可以從Eclipse IDE內部訪問其它Android開發工具。例如,ADT可以讓你直接從Eclipse訪問DDMS工具的很多功能—屏幕截圖,管理埠轉發(port-forwarding),設置斷點,觀察線程和進程信息。
它提供了一個新的項目向導(New Project Wizard),幫助你快速生成和建立起新Android應用程序所需的最基本的文件。
它使得構建Android應用程序的過程變得自動化以及簡單易行。
它提供了一個android代碼編輯器,可以幫助你為Android manifest和資源文件編寫有效的XML。
有關ADT插件的更多詳細信息,包括安裝指令,可參考Android 開發環境安裝。如果你想看一個用法範例的屏幕截圖,可參考Hello Android。
Dalvik 調試監視器服務(Dalvik Debug Monitor Service (ddms))
這個工具集成了Dalvik(為Android 平台定製的虛擬機(VM)),能夠讓你在模擬器或者設備上管理進程並協助調試。你可以使用它殺死進程,選擇某個特定的進程來調試,產生跟蹤數據,觀察堆(heap)和線程信息,截取模擬器或設備的屏幕畫面,還有更多的功能。
Android Asset Packaging Tool (aapt)
Aapt工具可以讓你創建包含Android應用程序二進制文件和資源文件的.apk文件。
Android介面描述語言(Android Interface Description Language (aidl))
可以讓你生成進程間的介面的代碼,諸如service可能使用的介面。
sqlite3
這個工具能夠讓你方便地訪問SQLite 數據文件。這些數據文件是由Android 應用程序創建並使用的。
Traceview
這個工具可以將你的Android 應用程序產生的跟蹤日誌(trace log)轉換為圖形化的分析視圖。
mksdcard
幫助你創建磁碟映像(disk image),你可以在模擬器環境下使用磁碟映像來模擬外部存儲卡(例如SD 卡)。
dx
Dx gongju 將.class位元組碼(bytecode)轉換為Android位元組碼(保存在.dex文件中) 。
UI/Application Exerciser Monkey
Monkey是在模擬器上或設備上運行的一個小程序,它能夠產生為隨機的用戶事件流,例如點擊(click),觸摸(touch),揮手(gestures),還有一系列的系統級事件。你可以使用Monkey來給你正在開發的程序做隨機的,但可重復的壓力測試 。
activitycreator
一個可以產生Ant build 文件的腳本,你可以使用它編譯你的android 應用程序。如果你正在Eclipse上開發,並使用ADT插件,你不必使用這個腳本。
③ 如何編譯一個精簡的Android系統
本次試驗使用的android源碼是4.2,編譯的架構是mini-mips。
一、所做的工作
1、修改build/target/proct/mini.mk,去掉一些不必要的模塊(例如Phone、DownloadManager等)
2、修改SystemServer.java,屏蔽一些service,讓系統能夠啟動起來(例如,Location Manager、Telephony Registry)
3、修改dalvik/vm/native/dalvik_system_Zygote.cpp,注釋掉因為檢查不到外部存儲而導致dalvik abort的地方 (這是googel的一個bug,在2013年1月份已解決,如果用這以後的代碼不用修改此處)
4、修改WindowManagerService.java,把發送BOOT_TIMEOUT消息的時間改為0(之前為30秒)
二、系統優化後的效果(驗證工作均在mips模擬器上進行)
1、節省運行內存,下面是全編譯與mini編譯的內存使用狀態的對比
1)full build
MemTotal: 499360 kB
MemFree: 242064 kB
2)mini build
MemTotal: 499360 kB
MemFree: 395192 kB
2、縮短開機啟動時間
在虛擬機上的啟動時間
1)full build-29秒
2)mini build-14秒
3、只啟動home程序,其餘的應用程序均被移除
三、保留android的開發環境
1、adb,ddms,apkinstall等,都能正常工作
2、在eclipse中編寫的android應用程序能夠運行在該mini-android之上
四、開機自動啟動指定應用程序
本次測試使用Gallery.apk應用程序,修改其源碼後可以實現隨系統的啟動而自動啟動的功能。
④ 如何編譯出mac下的adb
使用adb命令先得配置adb環境,下載後Android sdk,往 .bash_profile里導入你的Android sdk對應目錄,export PATH=${PATH}:your_sdk_path。
沒有.bash_profile的話就創建一個
1
touch .bash_profile
創建完成後打開
1
open -e .bash_profile
然後輸入你的對應路徑,保存退出。
輸入source .bash_profile,更新剛配置的環境變數
⑤ 如何默認打開user版本 debug 選項,默認打開adb 連接
需要修改code。
如下2個屬性需要更改為如下默認值。
ro.debuggable=1 //打開debug選項
ro.adb.secure=0//關閉鑒權
⑥ 如何編譯boot和android
1. 執行:apt-get install mingw32安裝了linux-windows交叉編譯環境mingwin 2. 執行:. build/envsetup.sh 3. 執行choosecombo,選擇各個參數 這兩步設置了一些編譯參數和環境變數,按照你正常編譯Android的設置即可。 4. 執行:make USE_MINGW=y adb 5. 執行:make USE_MINGW=y fastboot 最後到out/host/windows-x86/bin目錄下就能找到你剛剛編譯的東西了。
⑦ 4.0自帶 其他apk,編譯出錯,adb push無作用,不知道為什麼
其實這個是由於android中代碼檢查所限制的,可以做如下修改:/build/core/Makefile注釋掉以下幾行即可:define check-proct--files$(if $(filter %.apk, $(1)),$(error \ Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT instead!))endef
⑧ 為什麼android源碼編譯出來的adb是動態庫
例如:你不想編譯music進image中,你就在該文件里PRODUCT_PACKAGES :=這一項下的Music刪除就可以了同理,你想把自己的app編譯進image中,你先寫好編譯用的 Android.mk 文件,然後去到上面所說的文件里在 PRODUCT_PACKAGES :=這一項添加對應的app包名一般來說,只要改這么一個文件就足夠了。但是如果以上編譯後發現還是編譯到了image裡面,那麼它很有可能是一個已經編譯好的apk文件預裝到 image 裡面去了,也是以我的sdk為例,進入 device/產品目錄/common/apk 下看看有沒有.apk文件,我的sdk裡面這個目錄下的.apk文件是全部預裝到 system/app 裡面的還有一個目錄:/device/產品目錄/common/preinstallapk 這個目錄里的apk也是預裝到image裡面去,只是並不是預裝到 system/app 而已也就是說,你還要看看你不想編譯進image里的app是不是預裝進去,如果是預裝進去的話,只要在對應目錄下把該apk文件刪除了就好了希望這些能幫到你!
⑨ 如何在Linux下編譯Windows版本的adb和fastboot
1. 執行:apt-get install mingw32
安裝了linux-windows交叉編譯環境mingwin
2. 執行:. build/envsetup.sh
3. 執行choosecombo,選擇各個參數
這兩步設置了一些編譯參數和環境變數,按照你正常編譯Android的設置即可。
4. 執行:make USE_MINGW=y adb
5. 執行:make USE_MINGW=y fastboot
最後到out/host/windows-x86/bin目錄下就能找到你剛剛編譯的東西了。
⑩ 在電腦上為android設備編寫python腳本的好用編譯器
Android模擬器上安裝Python解釋器
我了解的有兩種方法可以下載並安裝Android軟體。一個是通過Android直接訪問網路,下載安裝;另一個是通過PC下載,然後通過模擬器工具ADB安裝。這里介紹第二種方式。
下載Python for Android解釋器;
解釋器框架,點擊下載:http://code.google.com/p/android-scripting/downloads/detail?name=sl4a_r3.apk&can=2&q=
python解釋器,點擊下載:http://code.google.com/p/android-scripting/downloads/detail?name=PythonForAndroid_r4.apk&can=2&q=
安裝Python for Android解釋器;
設置環境變數,加入Android模擬器工具 adb.exe所在的路徑。
打開cmd運行界面,輸入adb。你會看到如下信息:
輸入adb device。
輸入adb install –s <解釋器框架所在路徑>;比如adb install –s c:/sl4a_r3.apk。安裝完畢後,在你的android中就會出現SL4A圖標。
同上的步驟,再把python解釋器安裝上。比如adb install –s c:/PythonForAndroid_r4.apk。安裝完畢後,在你的Android中就會出現Python for Android圖標。
在Android中點擊Python for Android。進去後,有一個install的button,點擊安裝。這個程序會通過網路,下載到所需要的所有程序包。
測試Python for Android解釋器;
當一切安裝妥當後,在Android中點擊SL4A圖標。
在出現的列表中點擊hello_world.py(或者其他的腳本);界面左上角會出現一個小的SL4A的圖標,同時界面也會出現「hello world!」
如果你的Android運行結果如上所述,證明你的安裝成功了,繼續下一步。
Step4 : 編寫可在Android模擬器運行的Python Script並執行
編寫Python Script For Android;
傳遞Python Script到Android模擬器;
假設你編寫的python腳本存放在c:/Hello_world.py中
打開cmd界面,運行adb push <local> <remote>;例如,adb push c:/Hello_world.py /sdcard/sl4a/scripts/Hello_wold.py
在Android模擬器上運行Python Script;
在Android上運行腳本,你會看到「Hello world!」出現在屏幕上。 (如同step3的結果)
如果你的運行結果如上所述,那麼恭喜你,你已成功上傳並運行了你的第一個android python腳本,繼續下一步。