d 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. (科幻小說中的)機器人
這里涉及到兩個問題:odex和第三方制作的Gapps刷機包
買來一個android設備,沒有root前都是這樣子的:
只要不是內地的android設備基本都會搭載google提供的一系列android手機的應用,大家會叫它Gapps,GMS什么的。這一批應用包含了表面的從gmail到youtube到play service到背后的公共用途的軟件包,以及很多framework和本地代碼動態運行庫及其它內容。
當然其中大部分可執行代碼都以dex這種可以由dalvik這個java虛擬機執行的的形式存在,具體的說,是以odex的形式存在。
dalvik在運行dex之前,需要做一系列驗證,確保dex里頭的代碼是符合規范,是能安全執行的,dalvik做完檢查后,將dex做一些處理(比如調整,加校驗位等),就變成了odex。實際上在dalvik里頭運行的是odex。
所以,正式發售的設備的內置應用程序,都是以***.apk加上同名的***.odex存在的。
因為這種機制,把一對apk/odex放到另一臺不同(具體)型號的設備里是沒法運行的。
而google不允許包括CM在內的第三方rom里內置Gapps。Gapps是收費的私有軟件。
所以,目前想到的辦法是借助smali等開源工具做deodex,將odex轉化成可以通用的dex。這樣重新打包了Gapps后,才能作為刷機包塞到別的設備中
-----------------------------------
google會不會對gapps進行升級?
顯然是的,一部分的升級會通過play store進行,比如更新play store本身,裝一個google play service(這個apk實際上是一個供第三方應用程序的API合集,有了它才能在第三方應用中使用google maps的矢量地圖,通過google+登陸等項目)
另外一部分則要通過設備的OTA做,因為這個更新實在太大了,同一個手機,從android4.0升級到android4.1時,可能每一個Gapps的文件都需要替換,而且android安裝應用程序的機制說到底只能改變apk文件,但它動不了framework,library,所以這些東西的更新需要借助OTA等通過bootloader許可直接修改system分區的手段
在第三方打包好的gapps里就能發現,gapps有很多很多的版本
我覺得刷gapps的原則是,首先gapps要適配設備當前android的大版本,給4.1用的gapps就不應該刷到4.0系統里,使用intel處理器的尤其要注意,這個gapps是不是給x86設備的,Z24x0/27x0只能有限度地翻譯arm代碼,把arm設備的gapps給x86設備用,可能會導致系統根本無法啟動;然后越新打包出來的gapps問題可能會越少。
顯示“不支持 google play服務”的提示就表示著手機設備中未安裝“Google play服務框架”,需要找到手機自帶的“應用商店”軟件,進行下載并且安裝谷歌安裝器。
1、首先進入手機主頁面,找到手機自帶的“應用商店”軟件并點擊打開。
2、進入應用商店后,點擊上方的搜索框,進入搜索頁面,輸入“谷歌安裝器”進行搜索(搜索不出結果的話,滑動頁面找到最下方“去豌豆莢搜索”)。
3、接著在頁面找到谷歌安裝器,點擊右邊的“安裝”去進行下載安裝軟件。
4、之后點擊“一鍵安裝”,手機會自動下載谷歌服務包并自動安裝。
5、最后進行安裝過程,依次在彈出的界面中點擊“安裝”或“下一步”的按鈕,即可完成安裝 Google 服務框架。
注意事項:
1、在不支持Google Play服務的情況下,一定要第一時間去應用商店下載安裝“谷歌服務框架”。
2、盡量手機自帶應用商店內下載google相關基礎服務組件或者安裝器進行安裝。
3、手機自帶商店內沒有基礎服務組件或者安裝器,就需使用第三方的安裝器進行安裝。
4、任何安卓手機安裝GooglePlay需注意安裝完畢后是否可以正常使用,而非安裝結束即可。
不支持GooglePlay是由于GooglePlay服務安裝失敗,無法正常使用原因導致。
可以在百度或者第三方應用商店搜索谷歌服務下載器下載安裝,再次進入這個軟件時。
可以看到不再出現提示。而是有一個google play的提示說明安裝成功,部分手機則需要手機獲取Root權限之后,依次安裝Google Play服務框架,Google Play 服務,Google Play 三個軟件才可以正常使用。
Google Play 前名為Android Market,是一個由Google為Android設備開發的在線應用程序商店。一個名為"Play Store"的應用程序會預載在允許使用Google Play的手機上,可以讓用戶去瀏覽、下載及購買在Google Play上的第三方應用程序。
2012年3月7日,Android Market服務與Google Music、Google 圖書、Google Play Movie集成,并將其更名為Google Play。但是,這些服務在包括一些國家和中國大陸地區的無法使用。不過,2016年,Google Play將回歸中國。
主流智能手機操作系統,大致分為以下幾種:Symbian 塞班、windowsmobile 微軟、iPhone 蘋果、Android 谷歌、Linux、BlackBerry 黑莓等等,下面對這幾款操作系統進行介紹:Symbian OS(中文譯音“信比安系統”)由諾基亞、索尼愛立信、摩托羅拉、西門子等幾家大型移動通訊設備商共同出資組建的一個合資公司,專門研發手機操作系統
現已被NOKIA全額收購
而Symbian操作系統的前身是EPOC,而EPOC是 Electronic Piece of Cheese取第一個字母而來的,其原意為"使用電子產品時可以像吃乳酪一樣簡單",這就是它在設計時所堅持的理念
Symbian操作系統在智能移動終端上擁有強大的應用程序以及通信能力,這都要歸功于它有一個非常健全的核心-強大的對象導向系統、企業用標準通信傳輸協議以及完美的sun java語言
Symbian認為無線通訊裝置除了要提供聲音溝通的功能外,同時也應具有其它種溝通方式,如觸筆、鍵盤等
在硬件設計上,它可以提供許多不同風格的外型,像使用真實或虛擬的鍵盤,在軟件功能上可以容納許多功能,包括和他人互相分享信息、瀏覽網頁、傳輸、接收電子信件、傳真以及個人生活行程管理等
此外,Symbian操作系統在擴展性方面為制造商預留了多種接口,而且EPOC 操作系統還可以細分成三種類型:Pearl/Quartz/Crystal,分別對應普通手機、智能手機、Hand Held PC場合的應用
Symbian作為一款已經相當成熟的操作系統,具有以下的特點:第一,提供無線通信服務,將計算技術與電話技術相結合
第二,操作系統固化
第三,相對固定的硬件組成
第四,較低的研發成本
第五,強大的開放性
第六,低功耗,高處理性能
第七,系統運行的安全、穩定性
第八,多線程運行模式
第九,多種UI,靈活,簡單易操作
Symbian的優勢在于它得到了占據市場份額大多數的手持通訊設備廠商的支持,在NOKIA的大力倡導下,已經成為一個開放的、易用的、專業的開發平臺,支持C++和java語言
同時在以下方面提供平臺級支持:協議標準:TCP,IPv4,IPv6,藍牙,Java,WAP,SyncML,USB通訊能力:支持多任務、面向對象基于組件方式的2G、2
5G和3G系統及應用開發,GSM,GPRS,HSCSD,EDGE,CDMA(I