【移动开发】Android应用开发者应该知道的东西
作為一個(gè)有Java基礎(chǔ)的開發(fā)者來說,初步學(xué)習(xí)Android開發(fā)是很容易的一件事情,我身邊就有同學(xué)是學(xué)java的,由于對(duì)Android開發(fā)感興趣,就開始學(xué)習(xí)它,不到一個(gè)月的時(shí)間就做出了一款簡單實(shí)用的小應(yīng)用軟件。可能會(huì)有好多人會(huì)問那專門搞Android開發(fā)的人和“半路進(jìn)來”的人有哪些差距那?這里我想說的是,會(huì)做Android應(yīng)用的人,并不一定代表他很懂Android,Android系統(tǒng)之所以作為當(dāng)前世面上主流的智能手機(jī)系統(tǒng),除了開源外,還有它自身系統(tǒng)的優(yōu)勢(shì)(博客:http://smallwoniu.blog.51cto.com/blog/3911954/1248169)想要徹底掌握Android應(yīng)用層開發(fā)也不是那么容易的。
今天我就總結(jié)了一些Android開發(fā)中的瑣碎細(xì)節(jié),希望能幫助到大家!
一。ADB(Android Debug Bridge)
打開我們的android中sdk/platform-tools文件夾,里面存放著許多android開發(fā)過程中所需要的系統(tǒng)工具。
adb.exe
介紹:起到調(diào)試橋的作用。通過adb我們可以在Eclipse中方面通過DDMS來調(diào)試Android程序,說白了就是debug工具。adb的工作方式比較特殊,采用監(jiān)聽Socket TCP 5554等端口的方式讓IDE和Qemu通訊,默認(rèn)情況下adb會(huì)daemon相關(guān)的網(wǎng)絡(luò)端口,所以當(dāng)我們運(yùn)行Eclipse時(shí)adb進(jìn)程就會(huì)自動(dòng)運(yùn)行。
說明:借助adb工具,我們可以管理設(shè)備或手機(jī)模擬器的狀態(tài)。還可以進(jìn)行很多手機(jī)操作,如安裝軟件、系統(tǒng)升級(jí)、運(yùn)行shell命令等等。其實(shí)簡而言說,adb就是連接Android手機(jī)與PC端的橋梁,可以讓用戶在電腦上對(duì)手機(jī)進(jìn)行全面的操作(獲取手機(jī)數(shù)據(jù))
常用adb命令:
adb devices 列出所有的連接設(shè)備 (DDMS左側(cè)的窗口)
reset adb 重啟adb的調(diào)試橋
adb kill-server 殺死adb調(diào)試橋
adb start-server 啟動(dòng)adb調(diào)試橋
adb install helloworld.apk 安裝命令
(找到apk后可以直接將其拖入dos窗口即可,省的手動(dòng)拷路徑)
adb uninstall com.zhf.helloworld 卸載命令
adb shell 來到手機(jī)終端 執(zhí)行l(wèi)inux命令
adb -s emulator-5554 install helloworld.apk?往指定設(shè)備安裝?
注:重啟不了情況:端口可能被占用,在命令行中敲 netstat -ano, 查看端口號(hào)命令),這里我們就知道了像豌豆莢,360手機(jī)助手等軟件都有自己的adb,每當(dāng)有手機(jī)連接電腦時(shí)會(huì)執(zhí)行自己adb.exe,來對(duì)手機(jī)進(jìn)行一系列的操作。
二。andriod和java虛擬機(jī)的區(qū)別
| 區(qū)別 | JVM | Dalvik JVM |
| 編譯后的文件格式 | .java->.class->.jar | .java->.class->.dex->.odex |
| 編譯程序 | jdk中javac.exe | sdk 中dex.exe |
| 基于的架構(gòu) | 基于棧的結(jié)構(gòu) | 基于寄存器的結(jié)構(gòu) |
注:jar效率低,但通用性強(qiáng),非智能手機(jī)也能玩,而APK是android的專屬安裝文件,非android的手機(jī)就不能運(yùn)行,效率高,一般有apk的優(yōu)先要apk格式的
上面這張結(jié)構(gòu)圖我們可以清晰的知道,二者的執(zhí)行過程:
.jar--->包含許多.class文件,內(nèi)部執(zhí)行javac.exe編譯過程是把每個(gè)單獨(dú)的.java文件轉(zhuǎn)換成.class文件(包括Header、Class、Filed、Method、Attributes等)統(tǒng)一遍歷一遍所需時(shí)間較長,執(zhí)行安裝程序速度慢(windows上setup.exe安裝過程就是解壓文件到電腦硬盤上)
.apk--->只含有一個(gè).dex文件,內(nèi)部執(zhí)行dx.bat將所有class文件中的Header、Class、Filed、Method、Attributes 等統(tǒng)一分類放在一起,轉(zhuǎn)換成.dex文件,效率較高。
三。android應(yīng)用程序的安裝過程
首先,我們看一下工程下面的bin文件夾
里面包含了我們最后生成的apk文件,所有的res的資源,以及重要的classes.dex
這張圖清晰的反映了我們的Android項(xiàng)目打包、安裝過程:
打包:首先通過javac.exe將.java文件轉(zhuǎn)換成.class文件,之后通過dx.bat將其轉(zhuǎn)換成classes.dex文件,最后就是將其和整個(gè)項(xiàng)目對(duì)應(yīng)的文件夾打成.apk安裝包
安裝:首先是對(duì)應(yīng)用程序的簽名,之后先將apk復(fù)制到手機(jī)上,其次是在手機(jī)上對(duì)apk的解壓縮過程
四、啟動(dòng)應(yīng)用程序
我們雙擊apk文件,如果電腦裝了豌豆莢,就會(huì)自動(dòng)關(guān)聯(lián)豌豆莢將軟件撞到手機(jī)上,這是為什么那?
原因就是類似于我們?cè)赪indows上雙擊.txt文件會(huì)打開記事本程序,是因?yàn)槲覀冊(cè)谙到y(tǒng)盤的注冊(cè)表上注冊(cè)了該應(yīng)用程序所關(guān)聯(lián)的文件類型,那么我們?cè)谑謾C(jī)上打開應(yīng)用程序,首先我們打開Android系統(tǒng)的注冊(cè)表文件:
打開DDMS下的File Explore選項(xiàng),會(huì)列出手機(jī)的所有文件信息,在/data目錄下system系統(tǒng)目錄下netstats文件夾下有兩個(gè)目錄
packages.xml?: android系統(tǒng)的注冊(cè)表(每安裝一個(gè)應(yīng)用程序都會(huì)在此寫上配置信息,上以后要是加載這個(gè)程序,會(huì)首先去讀取這個(gè)注冊(cè)表加載到內(nèi)存中獲取其數(shù)據(jù))
packages.list?: 所有應(yīng)用程序的包列表 和 對(duì)應(yīng)數(shù)據(jù)的目錄
五、模擬器
我們創(chuàng)建好的一個(gè)模擬器啟動(dòng)后(相當(dāng)一個(gè)應(yīng)用程序啟動(dòng)),會(huì)在C盤用戶目錄下.android/avd下生成一個(gè)文件夾目錄
以上這些都是作為一個(gè)Android應(yīng)用開發(fā)者你應(yīng)該知道的一些東西,因?yàn)楸救艘彩窃趯W(xué)習(xí)Android,邊學(xué)邊總結(jié),有遺漏或者有誤的地方還請(qǐng)指正,謝謝!
? ? ?本文轉(zhuǎn)自zhf651555765 51CTO博客,原文鏈接:http://blog.51cto.com/smallwoniu/1320635,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的【移动开发】Android应用开发者应该知道的东西的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx实用指南V1 (连载之四:流行
- 下一篇: 把sqlserver中存储过程改写到or