android標准
『壹』 android中FIFO標準是一種怎麼樣的標准 它是一個類嗎 還是一種方法
First in first out
先進先出隊列,一種數據結構,不是類,也不是方法。
FIFO概念也不僅僅限制在android中。
『貳』 > 關於安卓系統:什麼是GB、HC、ICS、JB、KLP
其實都是不同系統版本的代號,區別在於不同版本.
GB是姜餅系統(Android 2.3);
HC是蜂巢系統(Android 3.0/3.1/3.2); *這個是用在平板電腦的*
ICS是冰淇淋系統(Android 4.0);
JB是果凍豆系統(Android 4.1);
KLP是酸橙派系統(Android 4.2). 不同版本的安卓系統(含代號):
Android 1.1Android 1.5 => Cupcake(紙杯蛋糕)Android 1.6 => Donut(甜甜圈)
Android 2.0/2.0.1/2.1 => Eclair(松餅)
Android 2.2/2.2.1 => Froyo(凍酸奶)
Android 2.3.x => Gingerbread(姜餅)
Android 3.0 => Honeycomb(蜂巢)
Android 3.1 => Honeycomb(蜂巢) Android 3.2 => Honeycomb(蜂巢)
Android 4.0 => Ice Cream Sandwich(冰激凌三明治)
Android 4.2 => Key Lime Pie(酸橙派)非標准安卓版本摩托羅拉基於標准Android修改的Blur系統HTC基於標准Android修改的Sense系統三星基於標准Android修改的TouchWiz系統LG基於標准Android修改的LG Optimus系統小米基於標准Android修改的MIUI系統酷派基於標准Android修改的CoolTouch系統魅族基於標准Android修改的Flyme OS系統夏普基於標准Android修改的TapFlow UI系統華為基於標准Android修改的Emotion UI/定製系統天語基於標准Android修改的阿里雲系統中興基於標准Android修改的Mifavor系統聯想基於標准Android修改的樂OS系統(樂magic)騰訊基於標准Android修改的tita系統
『叄』 android 系統簽名
也有提到怎麼單獨給一個apk簽名,這里補充一下android的簽名許可權控制機制。
android的標准簽名key有:
testkey
media
latform
hared
以上的四種,可以在源碼的/build/target/proct/security裡面看到對應的密鑰,其中shared.pk8代表私鑰,shared.x509.pem公鑰,一定是成對出現的。
其中testkey是作為android編譯的時候默認的簽名key,如果系統中的apk的android.mk中沒有設置LOCAL_CERTIFICATE的值,就默認使用testkey。
而如果設置成:
LOCAL_CERTIFICATE := platform
就代表使用platform來簽名,這樣的話這個apk就擁有了和system相同的簽名,因為系統級別的簽名也是使用的platform來簽名,此時使用android:sharedUserId="android.uid.system"才有用!
在/build/target/proct/security目錄下有個README,裡面有說怎麼製作這些key以及使用問題(android4.2):
從上面可以看出來在源碼下的/development/tools目錄下有個make_key的腳本,通過傳入兩個參數就可以生成一對簽名用的key。
其中第一個為key的名字,一般都默認成android本身有的,因為很多地方都默認使用了這些名字,我們自定義的話只需要對第二個參數動手腳,定義如下:
C ---> Country Name (2 letter code) ST ---> State or Province Name (full name) L ---> Locality Name (eg, city) O ---> Organization Name (eg, company) OU ---> Organizational Unit Name (eg, section) CN ---> Common Name (eg, your name or your server』s hostname) emailAddress ---> Contact email addre
另外在使用上面的make_key腳本生成key的過程中會提示輸入password,我的處理是不輸入,直接enter,不要密碼!後面解釋,用自定義的key替換/security下面的。
可以看到android源碼裡面的key使用的第二個參數就是上面README裡面的,是公開的,所以要release版本的系統的話,肯定要有自己的簽名key才能起到一個安全控製作用。
在上面提到如果apk中的編譯選項LOCAL_CERTIFICATE沒有設置的話,就會使用默認的testkey作為簽名key,我們可以修改成自己想要的key,按照上面的步驟製作一個releasekey,修改android配置在/build/core/config.mk中定義變數:
在主makefile文件裡面:
ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),build/target/proct/security/releasekey)
BUILD_VERSION_TAGS += release-key
這樣的話默認的所有簽名將會使用releasekey。
修改完之後就要編譯了,如果上面的這些key在製作的時候輸入了password就會出現如下錯誤:
我在網上找到了合理的解釋:
其實會出現這個錯誤的最根本的原因是多線程的問題。在編譯的時候為了加速一般都會執行make -jxxx,這樣本來需要手動輸入密碼的時候,由於其它線程的運行,就會導致影響當前的輸入終端,所以就會導緻密碼無法輸入的情況!
再編譯完成之後也可以在build.prop中查看到變數:
這樣處理了之後編譯出來的都是簽名過的了,系統才算是release版本
我發現我這樣處理之後,整個系統的算是全部按照我的要求簽名了。
網上看到還有另外的簽名release辦法,但是應該是針對另外的版本的,借用學習一下:
make -j4 PRODUCT-proct_mol-user dist
這個怎麼跟平時的編譯不一樣,後面多了兩個參數PRODUCT-proct_mol-user 和 dist. 編譯完成之後回在源碼/out/dist/目錄內生成個proct_mol-target_files開頭的zip文件.這就是我們需要進行簽名的文件系統.
我的proct_mol 是full_gotechcn,後面加「-user」代表的是最終用戶版本,關於這個命名以及proct_mol等可參考http://blog.csdn.net/jscese/article/details/23931159
編譯出需要簽名的zip壓縮包之後,就是利用/security下面的准備的key進行簽名了:
./build/tools/releasetools/sign_target_files_apks -d /build/target/proct/security out/dist/full_gotechcn-target_files.zip out/dist/signed_target_files.zi
簽名目標文件 輸出成signed_target_files.zi
如果出現某些apk出錯,可以通過在full_gotechcn-target_files.zip前面加參數"-e =" 來過濾這些apk.
然後再通過image的腳本生成imag的zip文件,這種方式不適用與我目前的工程源碼,沒有做過多驗證!
Android簽名機制可劃分為兩部分:(1)ROM簽名機制;(2)第三方APK簽名機制。
Android APK實際上是一個jar包,而jar包又是一個zip包。APK包的簽名實際上使用的是jar包的簽名機制:在zip中添加一個META的子目錄,其中存放簽名信息;而簽名方法是為zip包中的每個文件計算其HASH值,得到簽名文件(*.sf),然後對簽名文件(.sf)進行簽名並把簽名保存在簽名塊文件(*.dsa)中。
在編譯Android源碼生成ROM的過程中,會使用build/target/proct/security目錄中的4個key(media, platform, shared, testkey)來對apk進行簽名。其中,*.pk8是二進制形式(DER)的私鑰,*.x509.pem是對應的X509公鑰證書(BASE64編碼)。build/target/proct/security目錄中的這幾個默認key是沒有密碼保護的,只能用於debug版本的ROM。
要生成Release版本的ROM,可先生成TargetFiles,再使用帶密碼的key對TargetFiles重新簽名,最後由重簽名的TargetFiles來生成最終的ROM。
可以使用Android源碼樹中自帶的工具「development/tools/make_key」來生成帶密碼的RSA公私鑰對(實際上是通過openssl來生成的): $ development/tools/make_key media 『/C=CN/ST=Sichuan/L=Cheng/O=MyOrg/OU=MyDepartment/CN=MyName』 上面的命令將生成一個二進制形式(DER)的私鑰文件「media.pk8」和一個對應的X509公鑰證書文件「media.x509.pem」。其中,/C表示「Country Code」,/ST表示「State or Province」,/L表示「City or Locality」,/O表示「Organization」,/OU表示「Organizational Unit」,/CN表示「Name」。前面的命令生成的RSA公鑰的e值為3,可以修改development/tools/make_key腳本來使用F4 (0×10001)作為e值(openssl genrsa的-3參數改為-f4)。
也可以使用JDK中的keytool來生成公私鑰對,第三方APK簽名一般都是通過keytool來生成公私鑰對的。
可以使用openssl x509命令來查看公鑰證書的詳細信息: $ openssl x509 -in media.x509.pem -text -noout or, $ openssl x509 -in media.x509.pem -inform PEM -text -noout
還可以使用JDK中的keytool來查看公鑰證書內容,但其輸出內容沒有openssl x509全面: $ keytool -printcert -v -file media.x509.pem
有了key之後,可以使用工具「build/tools/releasetools/sign_target_files」來對TargetFiles重新簽名: $ build/tools/releasetools/sign_target_files_apks -d new_keys_dir -o target_files.zip target_files_resigned.zip 其中,new_keys_dir目錄中需要有四個key(media, platform, shared, releasekey)。注意:這里的releasekey將代替默認的testkey(請參考build/tools/releasetools/sign_target_files腳本實現),也就是說,如果某個apk的Android.mk文件中的LOCAL_CERTIFICATE為testkey,那麼在生成TargetFiles時是使用的build/target/proct/security/testkey來簽名的,這里重新簽名時將使用new_keys_dir/releasekey來簽名。
uild/tools/releasetools/sign_target_files_apks是通過host/linux-x86/framework/signapk.jar來完成簽名的。也可以直接使用host/linux-x86/framework/signapk.jar來對某個apk進行簽名: $ java -jar signapk [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar 其中,」-w」表示還對整個apk包(zip包)進行簽名,並把簽名放在zip包的comment中。
對於第三方應用開發者而言,對APK簽名相對要簡單得多。第三方應用開發一般採用JDK中的keytool和jarsigner來完成簽名密鑰的管理和APK的簽名。
使用keytool來生成存儲有公私鑰對的keystore: $ keytool -genkey -v -keystore my-release-key.keystore -alias mykey -keyalg RSA -keysize 2048 -validity 10000
查看生成的密鑰信息: $ keytool -list -keystore my-release-key.keystore -alias mykey -v or, $ keytool -list -keystore my-release-key.keystore -alias mykey -rfc (註:獲取Base64格式的公鑰證書,RFC 1421)
導出公鑰證書: $ keytool -export -keystore mystore -alias mykey -file my.der (註:二進制格式公鑰證書,DER) $ keytool -export -keystore mystore -alias mykey -file my.pem -rfc (註:Base64格式公鑰證書,PEM)
對APK進行簽名: $ jarsigner -verbose -keystore my-release-key.keystore my_application.apk mykey
驗證簽名: $ jarsigner -verify -verbose -certs my_application.apk
在進行Android二次開發時,有時需要把build/target/proct/security下面的公私鑰對轉換為keystore的形式,可以參考這篇文章:把Android源碼中的密碼對轉換為keystore的方法。
『肆』 以Android 的標准來說,UI 和 OS 的區別是什麼
UI是OS的一部分,os指的是整個系統,android就是一個os,ui指的是可視界面,比如你看到的桌面顯示。
另,這個跟android 標准沒有關系。
『伍』 android l和m 分別代表什麼意思
版本越來越高,功能也越來越完善了,android l與android m的區別主要還是應該關注m對l的改進吧。
Android M相比Android Lollipop(5.0)有六項重大的改進:
1.App Permissions(軟體許可權管理):在Android M里,應用許可提示可以自定義了。
2.Chrome Custom Tabs(網頁體驗提升):新版的M對於Chrome的網頁瀏覽體驗進行了提升,它對登陸網站、存儲密碼、自動補全資料、多線程瀏覽網頁的安全性進行了一些列的優化。
3.App Links(APP關聯):Android M加強了軟體間的關聯。
4.Android Pay(安卓支付):Android支付統一標准。
5.Fingerprint Support(指紋支持):Android M增加了對指紋的識別API。
6.Power & Charge(電量管理 ):新的電源管理模塊將更為智能,比如Android平板長時間不移動時,M系統將自動關閉一些App。同時Android M設備將支持USB Type-C介面,新的電源管理將更好的支持Type-C介面。
『陸』 谷歌欲設立Android車載平台遵從標准
據業內觀察人士透露,谷歌有意制定一套基於安卓汽車平台的合規標准,PND廠商推出安卓平台設備的努力可能受阻。根據合規標准,相關供應商推出的AndroidPND設備將接受谷歌嚴格的驗證程序。觀察人士表示,這一措施對汽車製造商和遠程信息處理設備供應商產生了強烈影響。自動導航器包括Garmin、Mitac和Papago在內的許多PND供應商已經推出了基於安卓的設備。但是,大多數PND廠商都不是開放移動聯盟的成員,因此他們的產品無法通過谷歌驗證,或者無法完全支持所有谷歌應用。據消息人士透露,PND供應商是否會推出符合標準的PND設備,還是像白色智能手機廠商一樣,乾脆避開法規,向白色AndroidPND廠商過渡,還有待觀察。
『柒』 Android軟體開發主要是學習什麼的
近半年來,手機的安卓系統與ios系統是目前主流的手機系統,Android軟體開發主要是學習什麼的?IT培訓http://www.kmbdqn.cn/發現安卓開發的技術很多的,如果想一次性學好是不實際的,但下面這些基礎還是要學好的。
1、Activity生命周期
雖然Android中有四大組件,但是不可否認Activity是最常用的。所以熟練掌握Android的生命周期是必須的。其實生命周期就是記住Activity的那些方法在什麼時候被系統調用,這樣才可以把對應的邏輯代碼寫到合適的方法內部去。
至於服務和廣播組件可以稍微緩一下,到實際使用的時候再學習都可以。
2、界面開發技術
界面開發是一種基本的技術,幾乎所有的程序裡面都需要用到。在Android開發中界面開發分為3種:
1)使用xml文件布局
使用xml首先對於界面進行布局,然後在Activity裡面進行引用是最常見的應用軟體開發技術,這種方式使用的最大,需要學習的內容也最多。學習時需要熟悉:
a)五種Layout布局
深刻理解五種布局組織控制項的方式是一個基本的基礎,這樣你才可以在實際的界面中靈活的使用每種布局結構,構造出需要的界面。
b)常用控制項
控制項有很多,至少要知道每種控制項是做什麼的,至於裡面的特定參數和方法可以學要的時候再去查
c)界面美化
系統的控制項很多時候無法滿足要求,需要通過添加背景更換圖片等進行美化,要熟悉每種控制項如何去美化。
掌握了上面的內容,通過布局的嵌套就可以製作出各種界面,如果在熟悉include的使用就可以減少xml的重復,方便後期的修改和維護了。
2)使用代碼動態創建
有些時候需要動態的創建一些布局和控制項,這個就需要使用LayoutInflater去創建一些動態的界面了。
3)自己繪制界面
游戲中常用,繼承SurfaceView自己繪制。
3、數據存儲技術
Android中的數據存儲方式有3種:
1)SharedPrefereneces存儲
對於簡單的數據可以使用該方式存儲,以鍵值對的方式存儲一些基本的數據。
2)文件存儲
將數據以文件的形式存儲,可以是手機自身的存儲也可以是SD卡,文件的數據格式自己定義。
3)SQLite資料庫存儲
使用標准SQL語句進行操作,復雜數據的首選。
4、網路編程
現在的Android程序不需要聯網的已經不多了。所以網路編程也是必須的,一般的公司都會封裝有自己的聯網結構,但是基本的聯網還是要熟悉。
1)HTTP聯網
使用Http聯網+Json數據格式是現在很多客戶端的首選。
2)Socket聯網
至於藍牙等連接方式則可以在項目需要的時候學習。
對於手機的系統功能,如撥打電話、發送簡訊、讀取系統參數等則可以根據需要在學習,不麻煩的。
其次,手機軟體相關
Android開發不同於普通的電腦軟體開發,需要了解手機的操作習慣,知道手機的屏幕不大、內存有限,電池有限等,在實際開發和設計時盡量考慮。
『捌』 android大班安全分類標准可將大壩分為幾類
大壩分為3類。
angela大班安全分類標准可將大壩分為3類。大壩,指截河攔水的堤堰,水庫、江河等的攔水大堤。
一般水庫大壩主要由主壩、副壩、正常溢洪道、非常溢洪道、新增非常溢洪道、靈正渠涵管及電站組成。
『玖』 Android 系統的手機標準的四個按鍵分別是什麼
後退鍵、菜單鍵、搜索鍵、HOME鍵
像索愛、三星這些機型因為廠家定製化的設計只有返回、HOME、菜單三個鍵
『拾』 如何評價 Android M
本文目錄:
第一部分 Android M重點新特性
第二部分 其他細小升級點(自己發現+官方未提及)
第三部分 Android M UI 和操作邏輯改變(相比 5.1.1 Lolipop)
第四部分 關於Android M彩蛋
前言:此次Android M 發布並沒有像上次L一樣給整個Android系統帶來質的飛躍(鑒於L是從4.4升級到5.0這個大的飛躍,而M只是5.2,所以情有可原)不過人性化功能的更新確實不少。
本文將採用新特性介紹+上手感覺的形式給大家呈現一個完整的 Android M
OK, Lets get started。
-----------------------------------------------------------------------------------------------------------------------------------------
大家也不必去尋找Android M到底有多少新特性了。。。。發布會的文字雲上寫的清清楚楚。(白色高亮為重點更新內容)
第一部分,重點新特性:
1.USB-C 支持
點評:這個倒是不出意外,因為自從蘋果Macbook和谷歌自家的Chromebook Pixel 將USB Type-C一炮打響之後,有越來越多的廠家和操作系統支持這種新標準是大勢所趨。
貼心附錄小科普:USB Type-C好在哪兒?
基於USB 3.1規范全新設計的USB Type-C,外觀上最大特點在於其上下端完全一致,這意味著用戶不必再區分USB正反面,如同蘋果Lightning介面一樣,兩個方向都可以插入。
USB Type-C介面尺寸為8.3×2.5毫米,小於當前PC的USB介面,但大於許多手機採用的尺寸6.85×1.8毫米的micro-USB介面。
USB Type-C(USB 3.1) 的其他特性:
通過USB Power Delivery技術
增進的電磁干擾與RFI mitigation特性
支持1萬次拔插。
USB Type-C 還支持 DisplayPort,功能終於能與 Thunderbolt 看齊。
降低編碼損耗,從3.0的20%降低為3%,並將編碼方式改為128b/132b
- 2.英文網頁復制文字將以單詞為單位進行復制(以前是以字母為單位)
實際上手測試:無法測試,因為目前暫時沒有Android M 設備擁有Type-C介面。
——————————————————————————————————————————
點評:功德無量的新功能,以前想在小屏手機上用Chrome復制文字簡直累瘋,不是少個字母就是多個空格什麼的。在發布會上聽到這個功能的我淚流滿面..........
之前復制功能反人類的地方還在於復制按鈕居然在屏幕頂部,完全無法單手復制,現在復制按鈕就在旁邊,so easy!
實際上手測試:
