本文為Android的背景知識相關(guān)知識整理怠缸,具體參考了
- 《Android群英傳》第一章 Android體系與系統(tǒng)架構(gòu)
Android底層采用C語言保證效率,上層使用Java簡單钳宪,快速進行開發(fā)揭北。
1.Android系統(tǒng)架構(gòu)
- Linux Kernel,包括Camera Driver, USB Driver等硬件驅(qū)動吏颖,進程管理搔体,安全系統(tǒng),Power Management等
- Libraries和Android runtime(ART)半醉,包括SQLite疚俱,WebKit,SSL缩多,Surface Management等呆奕。在Androd5.X,ART已經(jīng)取代Dalvik衬吆,采用安裝時編譯梁钾。每個APP都會分配一個虛擬機來保證互相之間不受干擾。
- Application framework逊抡,包括Activity Manager姆泻,Content Providers,Package Manager等秦忿。
- Application麦射,使用NDK和Java開發(fā)的App蛾娶。
2.Android四大組件
- Activity灯谣,交互界面
- Content Provider,應(yīng)用之間共享數(shù)據(jù)
- Service蛔琅,提供后臺服務(wù)
- BroadCast Reciever胎许,廣播
四大組件如何協(xié)同工作?
Activity罗售,作為人機交互的第一界面辜窑,負(fù)責(zé)向用戶展示信息和處理結(jié)果,而這些信息的來源寨躁,有以下幾種途徑:
- 通過Content Provider獲取其他應(yīng)用的信息(比如通訊錄)穆碎。
- 通過Service從后臺計算、下載职恳、處理的結(jié)果所禀。
- 通過BroadCast Reciever獲取到的廣播信息方面。
- 通過資源獲取。
- 通過Intent傳遞色徘。
應(yīng)用運行上下文是什么恭金?
Context,是當(dāng)前對象在程序中所處的一個環(huán)境褂策,一個與系統(tǒng)交互的過程横腿。
系統(tǒng)會在創(chuàng)建Application,Activity斤寂,Service的時候創(chuàng)建相應(yīng)的Context對象耿焊。
獲取Context的方法如下:
- 在Activity中直接使用this
- 在匿名內(nèi)部類中,指定XXXXActivity.this
- 通過getApplicationContext()直接獲取整個App的Context
3.Android系統(tǒng)源碼扬蕊,系統(tǒng)目錄搀别,App文件目錄
Android系統(tǒng)目錄和源碼目錄并不是一一對應(yīng)的,而是和打包生成的Image文件的結(jié)構(gòu)相同尾抑。
- Android系統(tǒng)源碼在線查看網(wǎng)站:androidxref.com
- Android系統(tǒng)目錄中歇父,/system和/data最為重要。其中再愈,data/data/是開發(fā)者最常訪問的文件夾榜苫,里面包含了App的數(shù)據(jù)信息,文件信息翎冲,數(shù)據(jù)庫信息等垂睬,以包名的方式來區(qū)分各個應(yīng)用。
- Android App文件目錄抗悍,應(yīng)用層上開發(fā)應(yīng)用的時候IDE生成的目錄驹饺。Android Studio與Eclipse的文件結(jié)構(gòu)稍有不同。
4.Android Studio和ADB
- 安裝Android Studio必備資料:AndroidDevTools
- ADB缴渊,Android Debug Bridge赏壹,用來連接手機和電腦。
ADB基本命令
1.查看adb版本衔沼,進入shell蝌借。
>adb version
Android Debug Bridge version 1.0.32
>adb shell
2.安裝apk,install為安裝指蚁,而push為將一個文件寫入手機任意目錄菩佑,下面放入了系統(tǒng)目錄/system/app/,Test成為了一個系統(tǒng)應(yīng)用凝化。
>adb install -r F:\Test.apk
>adb push D:\Test.apk /system/app/
3.向手機寫入(push)稍坯,獲取(pull)文件
>adb push D:\file.txt /system/temp/
>adb pull /system/temp/file.txt D:\
4.刪除應(yīng)用
>adb remount
>adb shell
>cd system/app
>rm *.apk
5.重啟
>adb reboot
6.錄制屏幕
>adb shell screenrecord /sdcard/demo.mp4