一、重要包的描述:
android.app :提供高層的程序模型、提供基本的運行環(huán)境
android.content :包含各種的對設備上的數(shù)據(jù)進行訪問和發(fā)布的類
android.database :通過內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫
android.graphics :底層的圖形庫,包含畫布,顏色過濾,點,矩形,可以將他們直接繪制到屏幕上.
android.location :定位和相關服務的類
android.media :提供一些類管理多種音頻、視頻的媒體接口
android.net :提供幫助網(wǎng)絡訪問的類,超過通常的java.net.* 接口
android.os :提供了系統(tǒng)服務、消息傳輸、IPC 機制
android.opengl :提供OpenGL 的工具
android.provider :提供類訪問Android 的內(nèi)容提供者
android.telephony :提供與撥打電話相關的API 交互
android.view :提供基礎的用戶界面接口框架
android.util :涉及工具性的方法,例如時間日期的操作
android.webkit :默認瀏覽器操作接口
android.widget :包含各種UI 元素(大部分是可見的)在應用程序的屏幕中使用
二、虛擬機Dalvik
Dalvik 和標準Java 虛擬機(JVM)首要差別是:Dalvik 基于寄存器,而JVM 基于棧?;诩拇嫫鞯奶摂M機對于更大的程序來說,在它們編譯的時候,花費的時間更短。
Dalvik 和Java 運行環(huán)境的區(qū)別是:Dalvik 經(jīng)過優(yōu)化,允許在有限的內(nèi)存中同時運行多個虛擬機的實例,并且每一個Dalvik 應用作為一個獨立的Linux 進程執(zhí)行。獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉。
三、Android 的相關文件類型
Java 文件-----應用程序源文件
android 本身相當一部分都是用java 編寫而成(基本上架構圖里頭藍色的部份都是用Java 開發(fā)的),android 的應用必須使用java 來開發(fā)。
Class 文件------Java 編譯后的目標文件
不像J2se,java 編譯成class 就可以直接運行,android 平臺上class 文件不能直接在android 上運行。由于Google使用了自己的Dalvik 來運行應用,所以這里的class 也肯定不能在AndroidDalvik 的java 環(huán)境中運行,android的class 文件實際上只是編譯過程中的中間目標文件,需要鏈接成dex 文件后才能在dalvik 上運行。
Dex 文件-----Android 平臺上的可執(zhí)行文件
Android 虛擬機Dalvik 支持的字節(jié)碼文件格式Google 在新發(fā)布的Android 平臺上使用了自己的Dalvik 虛擬機來定義,這種虛擬機執(zhí)行的并非Java 字節(jié)碼,而是另一種字節(jié)碼:dex 格式的字節(jié)碼。在編譯Java 代碼之后,通過Android 平臺上的工具可以將Java 字節(jié)碼轉換成Dex 字節(jié)碼。
Apk 文件-------Android 上的安裝文件
Apk 是Android 安裝包的擴展名,一個Android 安裝包包含了與某個Android 應用程序相關的所有文件。apk文件將AndroidManifest.xml 文件、應用程序代碼(.dex 文件)、資源文件和其他文件打成一個壓縮包。一個工程只能打進一個.apk 文件。
四、關于應用程序
以helloworld為例,編譯出來的class文件,放置在\bin\oms\samples\home中。編譯出來的apk在bin文件中,可以用winrar打開,組織結構類似工程。
運行環(huán)境描述 .classpath內(nèi)容為:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/OPhone"/>
<classpathentry kind="output" path="bin"/>
</classpath>
工程配置文件 .project內(nèi)容為:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>HomeAPIDemoActivity</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
五、調試
adb 功能操作:
快速更新設備或手機模擬器中的代碼,如應用或Android 系統(tǒng)升級
在設備上運行shell 命令
管理設備或手機模擬器上預定端口
在設備或手機模擬器上復制、粘貼文件
adb 常用操作:
安裝應用到模擬器
adb install app.apk
Android 沒有提供一個卸載應用的命令,只能手動刪除:
adb shell
cd data/app
rm app.apk
進入設備或模擬器的Shell
adb shell
通過以上命令,可以進入設備或模擬器的shell 環(huán)境中,在這個Linux Shell 中,你可以執(zhí)行各種Linux 的命令,
adb shell [command]
另外如果只想執(zhí)行一條shell 命令,可以采用以下方式:
如:adb shell dmesg
會打印出內(nèi)核的調試信息
發(fā)布端口
可以設置任意的端口號,做為主機向模擬器或設備的請求端口。如:
adb forward tcp:5555 tcp:8000
復制文件
可向一個設備或從一個設備中復制文件
復制一個文件或目錄到設備或模擬器上:
adb push
如:
adb push test.txt /tmp/test.txt
從設備或模擬器上復制一個文件或目錄
adb pull
如:
adb pull /android/lib/libwebcore.os
搜索/等待模擬器、設備實例
adb devices
取得當前運行的模擬器、設備的實例列表及每個實例的狀態(tài)| 等待正在運行的設備
adb wait-for-device
查看Bug 報告
adb bugreport
記錄無線通訊日志
adb shell
logcat -b radio
無線通訊記錄日志非常多,在運行時沒必要記錄,可以通過命令設置記錄獲取設備ID 和序列號
adb get-product
adb get-serialno
訪問數(shù)據(jù)庫SQLite3
adb shell
sqlite3
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請
點擊舉報。