抽象類(abstract class),ViewGroup之內還可以有ViewGroup。View的構造函數不需要再Activity中調用,但是Displayable的是必須的,在Activity 中,要通過findViewById()來從XML 中取得View,Android的View類的顯示很大程度上是從XML中讀取的。View 與事件(event)息息相關,兩者之間通過Listener 結合在一起,每一個View都可以注冊一個event listener,例如:當View要處理用戶觸碰(touch)的事件時,就要向Android框架注冊View.OnClickListener。另外還有Image等同于J2ME的BitMap。 C/C++開發方面 早期的Android開發只支持Java作為編程語言開發應用程序,因而使得其他語言開發者只能望而卻步。2010年4月,谷歌正式對開發者發布了Android NDK,NDK允許開發者使用C/C++作為編程語言來為Android開發應用程序,初版的NDK使得開發者看到了C/C++在Android開發中的希望。 但是,當前版本的NDK在功能上還有很多局限性:NDK并沒有提供對應用程序生命周期的維護;NDK也不提供對Android系統中大量系統事件的支持;對于作為應用程序交互接口的UI API,當前版本的NDK中也沒有提供。但是相對于初版的NDK,現在的NDK已經進行了許多重大的功能改進。 由此可見,NDK仍然需要完善和發展,相信未來隨著NDK的發展,NDK可以做得更多更好。
中介軟件
操作系統與應用程序的溝通橋梁,應用分為兩層:函數層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari 瀏覽器背后的引擎。Surface flinger 是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自制的Bionic Libc。 Android采用OpenCORE作為基礎多媒體框架。OpenCORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。 Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與Linux Cairo功能相當,但相較于Linux Cairo, skia 功能還只是雛形的。2005年Skia公司被Google收購,2007年初,Skia GL源碼被公開,目前Skia 也是Google Chrome 的圖形引擎。 Android的多媒體數據庫采用SQLite數據庫系統。數據庫又分為共用數據庫及私用數據庫。用戶可通過ContentResolver類(Column)取得共用數據庫。 Android的中間層多以Java 實現,并且采用特殊的Dalvik 虛擬機(Dalvik Virtual Machine)。Dalvik虛擬機是一種“暫存器型態”(Register Based)的Java虛擬機,變量皆存放于暫存器中,虛擬機的指令相對減少。 Dalvik虛擬機可以有多個實例(instance), 每個Android應用程序都用一個自屬的Dalvik虛擬機來運行,讓系統在運行程序時可達到優化。Dalvik 虛擬機并非運行Java字節碼(Byte買粉絲de),而是運行一種稱為.dex格式的文件。
硬件抽像層
Android 的 HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 kernel independent 的概念,也讓 Android framework 的開發能在不考量驅動程序實現的前提下進行發展。 HAL stub 是一種代理人(proxy)的概念,stub 是以 *.so 檔的形式存在。Stub 向 HAL“提供”操作函數(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 這些操作函數。HAL 里包含了許多的 stub(代理人)。Runtime 只要說明“類型”,即 mole ID,就可以取得操作函數。
內核
Android 是運行于 Linux kernel之上,但并不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以open買粉絲re 取代FFmpeg 等等。Android 為了達到商業應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程序移到 userspace,使得Linux driver 與 Linux kernel徹底分開。bionic/libc/kernel/ 并非標準的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所產生的,這樣做是為了保留常數、數據結構與宏。 目前Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Management),程序管理(Process Management),網絡堆棧(Network Stack),驅動程序模型(Driver Model)等。下載Android源碼之前,先要安裝其構建工具 Repo來初始化源碼。Repo 是 Android 用來輔助Git工作的一個工具。
安全權限機制
智能手機操作系統
IOS ▪ Android ▪ Symbian ▪ Windows Mobile ▪ Windows Phone 7
開放分類:
操作系統,google,智能手機,平板電腦,android
“android”在英漢詞典中的解釋(來源:百度詞典):
android
KK: []
DJ: []
a.
1. 有人類特征的
2. (指骨盤)角形窄口的
3. 陽性的,男性的,雄性的
n.
1. (科幻小說中的)機器人
ADB就是一個查看APP執行命令的客戶端
ADB是一個 客戶端-服務器端 程序, 其中客戶端是你用來操作的電腦, 服務器端是android設備.
先說安裝方法, 電腦上需要安裝客戶端. 客戶端包含在sdk里. 設備上不需要安裝, 只需要在手機上打開選項settings-applications-development-USBdebugging.
對于Mac和Linux用戶, 下載好的sdk解壓后, 可以放~或者任意目錄. 然后修改~/.bash_profile文件, 設置運行環境指向sdk的tools目錄.
具體是打開~/.bash_profile文件(如果沒有此文件也可以自行添加), 在里面加入一行:
export PATH=${ PATH}:<你的sdk目錄>/tools
然后就可以使用adb命令了.
嫌安裝麻煩的同學其實也可以省去上面安裝步驟, 直接輸入完整路徑來使用命令
對于windows xp用戶, 需要先安裝usb驅動
android_usb_windows.zip (1.33 MB) , 然后如果你只打算使用adb而不想下載整個sdk的話, 可以下載這個單獨的adb工具包
adb_win.zip (571.56 KB) 下載后解壓, 把里面 adb.exe 和 AdbWinApi.dll 兩個文件放到系統盤的 windows/system32 文件夾里就可以了
1.確定手機root了,取得了root權限才能刪除系統文件呀.
2.下載Android_db.rar,解壓到%windir/%System32下.
3.手機連接數據線,在電腦上打開cmd,然后輸入命令
adb remount
adb shell
su
執行完成之后,你會看到:
* daemon not running. starting it now
** daemon started successfully
*4.接著就是Linux命令行模式了,輸入
cd system/app
你會發現沒啥變化,然后輸入ls回車.
這時候列表顯示了system/app里面的所有文件,也就是Rom集成的一些軟件了.
5.開始刪除吧.比如刪除Youtube,他的文件名是Youtube.odex和Youtube.apk
我們要刪除這2個文件,敲入以下命令:
rm Youtube.
*重啟,Youtube已經刪除掉了,注意各位同學千萬不要刪除你不知道是啥的東西.
指定允許AVD的內存大小:
emulator -avd avdName -partition-size 256
啟動一個叫avdName的模擬器,允許內存最大為256MADB常用的幾個命令
1. 查看設備
adb devices
這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示
2. 安裝軟件
adb install
這個命令將指定的apk文件安裝到設備上
3. 卸載軟件
adb uninstall <軟件名>
adb uninstall -k <軟件名>
如果加 -k 參數,為卸載軟件但是保留配置和緩存文件.
4. 登錄設備shell
adb shell
adb shell
這個命令將登錄設備的shell.
后面加將是直接運行設備命令, 相當于執行遠程命令
5. 從電腦上發送文件到設備
adb push <本地路徑> <遠程路徑>
用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)
6. 從設備上下載文件到電腦
adb pull <遠程路徑> <本地路徑>
用pull命令可以把設備(手機)上的文件或者文件夾復制到本機電腦
7. 顯示幫助信息
adb help
這個命令將顯示幫助信息
刪除Android系統R