天天看點

【移動開發】Android應用開發者應該知道的東西

今天我就總結了一些Android開發中的瑣碎細節,希望能幫助到大家!

一。ADB(Android Debug Bridge)

打開我們的android中sdk/platform-tools檔案夾,裡面存放着許多android開發過程中所需要的系統工具。

<a href="http://blog.51cto.com/attachment/201311/000004941.jpg" target="_blank"></a>

adb.exe

介紹:起到調試橋的作用。通過adb我們可以在Eclipse中方面通過DDMS來調試Android程式,說白了就是debug工具。adb的工作方式比較特殊,采用監聽Socket TCP 5554等端口的方式讓IDE和Qemu通訊,預設情況下adb會daemon相關的網絡端口,是以當我們運作Eclipse時adb程序就會自動運作。

說明:借助adb工具,我們可以管理裝置或手機模拟器的狀态。還可以進行很多手機操作,如安裝軟體、系統更新、運作shell指令等等。其實簡而言說,adb就是連接配接Android手機與PC端的橋梁,可以讓使用者在電腦上對手機進行全面的操作(擷取手機資料)

常用adb指令:

adb devices 列出所有的連接配接裝置 (DDMS左側的視窗)

reset adb 重新開機adb的調試橋

adb kill-server 殺死adb調試橋

adb start-server 啟動adb調試橋

adb install helloworld.apk 安裝指令

(找到apk後可以直接将其拖入dos視窗即可,省的手動拷路徑)

adb uninstall com.zhf.helloworld 解除安裝指令

adb shell 來到手機終端 執行linux指令

adb -s emulator-5554 install helloworld.apk 往指定裝置安裝 

注:重新開機不了情況:端口可能被占用,在指令行中敲 netstat -ano, 檢視端口号指令),這裡我們就知道了像豌豆莢,360手機助手等軟體都有自己的adb,每當有手機連接配接電腦時會執行自己adb.exe,來對手機進行一系列的操作。

二。andriod和java虛拟機的差別

差別

JVM

Dalvik JVM

編譯後的檔案格式

.java-&gt;.class-&gt;.jar

.java-&gt;.class-&gt;.dex-&gt;.odex

編譯程式

jdk中javac.exe

sdk 中dex.exe

基于的架構

基于棧的結構

基于寄存器的結構

注:jar效率低,但通用性強,非智能手機也能玩,而APK是android的專屬安裝檔案,非android的手機就不能運作,效率高,一般有apk的優先要apk格式的

<a href="http://blog.51cto.com/attachment/201311/003049814.jpg" target="_blank"></a>

上面這張結構圖我們可以清晰的知道,二者的執行過程:

.jar---&gt;包含許多.class檔案,内部執行javac.exe編譯過程是把每個單獨的.java檔案轉換成.class檔案(包括Header、Class、Filed、Method、Attributes等)統一周遊一遍所需時間較長,執行安裝程式速度慢(windows上setup.exe安裝過程就是解壓檔案到電腦硬碟上)

.apk---&gt;隻含有一個.dex檔案,内部執行dx.bat将所有class檔案中的Header、Class、Filed、Method、Attributes 等統一分類放在一起,轉換成.dex檔案,效率較高。

三。android應用程式的安裝過程

首先,我們看一下工程下面的bin檔案夾

<a href="http://blog.51cto.com/attachment/201311/004022601.jpg" target="_blank"></a>

裡面包含了我們最後生成的apk檔案,所有的res的資源,以及重要的classes.dex

<a href="http://blog.51cto.com/attachment/201311/010046854.jpg" target="_blank"></a>

這張圖清晰的反映了我們的Android項目打包、安裝過程:

打包:首先通過javac.exe将.java檔案轉換成.class檔案,之後通過dx.bat将其轉換成classes.dex檔案,最後就是将其和整個項目對應的檔案夾打成.apk安裝包

安裝:首先是對應用程式的簽名,之後先将apk複制到手機上,其次是在手機上對apk的解壓縮過程

四、啟動應用程式

我們輕按兩下apk檔案,如果電腦裝了豌豆莢,就會自動關聯豌豆莢将軟體撞到手機上,這是為什麼那?

原因就是類似于我們在Windows上輕按兩下.txt檔案會打開記事本程式,是因為我們在系統盤的系統資料庫上注冊了該應用程式所關聯的檔案類型,那麼我們在手機上打開應用程式,首先我們打開Android系統的系統資料庫檔案:

打開DDMS下的File Explore選項,會列出手機的所有檔案資訊,在/data目錄下system系統目錄下netstats檔案夾下有兩個目錄

<a href="http://blog.51cto.com/attachment/201311/005607936.jpg" target="_blank"></a>

packages.xml : android系統的系統資料庫(每安裝一個應用程式都會在此寫上配置資訊,上以後要是加載這個程式,會首先去讀取這個系統資料庫加載到記憶體中擷取其資料)

<a href="http://blog.51cto.com/attachment/201311/005840516.jpg" target="_blank"></a>

packages.list : 所有應用程式的包清單 和 對應資料的目錄

<a href="http://blog.51cto.com/attachment/201311/005916846.jpg" target="_blank"></a>

五、模拟器

我們建立好的一個模拟器啟動後(相當一個應用程式啟動),會在C槽使用者目錄下.android/avd下生成一個檔案夾目錄

<a href="http://blog.51cto.com/attachment/201311/011617598.jpg" target="_blank"></a>

以上這些都是作為一個Android應用開發者你應該知道的一些東西,因為本人也是在學習Android,邊學邊總結,有遺漏或者有誤的地方還請指正,謝謝!

<b>     本文轉自zhf651555765 51CTO部落格,原文連結:http://blog.51cto.com/smallwoniu/1320635</b><b>,如需轉載請自行聯系原作者</b>

<b></b>