『壹』 如何高效學習android動畫
自己整個學習過程中的產出的文章動畫系列 - 傳統View動畫與Property動畫基礎及比較 動畫系列 - PropertyAnim 詳解動畫系列 - PropertyAnim 實際應用動畫系列 - ViewPager動畫 Android 動畫基礎 (由於 @Trinea 發起的codeKK 項目下的開源項目原理分析項目android-cn/android-open-project-analysis · GitHub 二期中,很多分析項目涉及到了動畫,所以該篇主要是對PropertyAnim詳解和基礎篇中的一些知識進行整理,作為二期的動畫公共知識,codeKK 絕對是超級棒的項目,大家可以多關注)從傳統View動畫與Property動畫基礎及比較 以及Android 動畫基礎 這兩篇文章,你可以對android動畫總體有些了解,PropertyAnim 詳解這一篇則是專門介紹了3.0出現的屬性動畫,其中也涉及到了JakeWharton大神為3.0之前實現的兼容庫NineOldAndroids。 通過ViewPager來實現動畫效果的方式越來越多,一些視差效果也確實很贊,比如雅虎天氣的視差效果,知乎導航界面中元素的視差,關於它們的實現原理,在 ViewPager動畫 這篇中有詳細的分析,其中也提到了GitHub上一些和ViewPager動畫類似的實現,也分析了它們之間的區別,具體可以參考文章。PropertyAnim 實際應用主要介紹了一些簡單API的使用,亮點是其中介紹了很多GitHub 上的動畫項目,其中實現多數使用了NineOldAndroids兼容庫,可以作為不錯的學習資料。上面幾篇文章中都有非常詳細的介紹,就不多說了,因為文章中對於一些概念,使用,原理介紹的確實太詳細了,現在想起來,當時鑽的確實有點深了,比如PropertyAnim 詳解這篇文章,對屬性動畫中的ValueAnimator,Evaluators,Interpolators的介紹以及TimeInterpolator和TypeEvaluator的比較等等,具體的可以參考文章。這幾篇文章看下來,你應該對android動畫有一些更系統更深入的認識了。基本的動畫實現應該沒啥難度了。每篇文章的信息量很是很大的,因為在學習過程中主要是通過大量的GitHub動畫項目,也參考了不少資料,在文章結尾處有提及。 如果你還想進階,這里再分享一些不錯的項目,這些項目都是在android動畫基礎上建立起來的,所以看他們的源碼,完全沒有難度:
『貳』 如何生成release版本的Android系統
1.使用platform密鑰對apk進行簽名
1.1.進入<Android_Source_Path>/build/target/proct/security,找到【platform.pk8】和【platform.x509.pem】系統密鑰。
1.2.進入<Android_Source_Path>/build/tools/signapk找到SignApk.java,運行javac編譯成SignApk.class
1.3.執行命令java com.android.signapk.SignApk platform.x509.pem platform.pk8 input.apk output.apk
至此,完成。
2. 對1的補充:
<Android_Source_Path>/build/target/proct/security下有多對密鑰,詳細如下:
The following commands were used to generate the test key pairs:
development/tools/make_key testkey '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
development/tools/make_key shared '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
development/tools/make_key media '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
The following standard test keys are currently included:
testkey -- a generic key for packages that do not otherwise specify a key.
platform -- a test key for packages that are part of the core platform.
shared -- a test key for things that are shared in the home/contacts process.
media -- a test key for packages that are part of the media/download system.
These test keys are used strictly in development, and should never be assumed
to convey any sort of validity. When $BUILD_SECURE=true, the code should not
honor these keys in any context.
signing using the openssl commandline (for boot/system images)
--------------------------------------------------------------
1. convert pk8 format key to pem format
% openssl pkcs8 -inform DER -nocrypt -in testkey.pk8 -out testkey.pem
2. create a signature using the pem format key
% openssl dgst -binary -sha1 -sign testkey.pem FILE > FILE.sig
extracting public keys for embedding
------------------------------------
it's a Java tool
but it generates C code
take a look at commands/recovery/Android.mk
you'll see it running $(HOST_OUT_JAVA_LIBRARIES)/mpkey.jar
3.對3的補充:
在運行第三步的命令前,請在當前的工作目錄下新建如下結構的文件夾:com.android.signapk,然後將第二步編譯生成的SignApk放入該目錄下。或者也可以將SignApk.java的package聲明刪除後再運行javac編譯。
命令java com.android.signapk.SignApk platform.x509.pem platform.pk8 input.apk output.apk
不單可以對apk文件進行重簽名,也可以對所有的zip文件進行重簽名,包括ROM文件。
網上Android數字簽名大多是與Android APK相關,而介紹Android系統簽名的方法卻不多。正巧前段時間幫別人做CTS 認證,需要用到給Android系統簽名。
為什麼需要給Android系統簽個名才能進行CTS認證呢?原來通過make -j4編譯出來的system.img使用的是test key,這種類型的key只適用於開發階段,而且這種秘鑰是公開的,誰都可以使用。當發布一款android產品,就需要另外給整個系統簽個名,防止被別人盜用。這種系統就是release版本的Android系統。
下面就詳細介紹下整個過程。
1、生成加密key文件
要對Android系統進行簽名,需要生成四種類型的key文件。
a)releasekey
b)media
c)shared
d)platform
就拿releasekey為例簡單介紹下生成過程。
1)進入/android_src/development/tools目錄。
/development/tools$ ls
apkcheck etc1tool hosttestlib jdwpspy makedict mkstubs
axl finnused idegen line_endings make_key monkeyrunner zoneinfo
2)使用make_key工具生成簽名文件
development/tools$ sh make_key releasekey '/C=CN/ST=JiangSu/L=NanJing/O=Company/OU=Department/CN=YourName/emailAddress=YourE-mailAddress'
Enter password for 'releasekey' (blank for none; password will be visible): mypassword <------- 設置密碼
creating platform.pk8 with password [mypassword]
Generating RSA private key, 2048 bit long molus
...............+++
........................................................+++
e is 3 (0x3)
這里要順便介紹下make_key的參數。第一個參數是要生成key的名字,第二個參數是關於公司的信息。
key的名字很好理解,就是前面提到的4中類型的key,公司信息的參數比較多,它們的含義如下:
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 address
這樣就生成了一組releasekey,另外3種類型的key的生成方法也基本一樣。
生成後的結果如下:
/development/tools$ ls
makedict media.pk8 mkstubs platform.pk8 releasekey.pk8 shared.pk8
make_key media.x509.pem platform.x509.pem releasekey.x509.pem shared.x509.pem
*.pk8是生成的私鑰,而*.x509.pem是公鑰,生成時兩者是成對出現的.
2 、 把pk8和x509.pem文件拷貝到vendor/Mol/security/proct_mol目錄
/android_src/vendor/Mol/security/proct_mol$ cp ../../../../development/tools/*.pk8 ./
/android_src/vendor/Mol/security/proct_mol$ cp ../../../../development/tools/*.pem ./
這一部雖然不是必須的,但最好還是這樣做下,由於牽涉到項目的原因,產品和產品型號就用Mol和proct_mol代替了.
3 、 回到根目錄android_src
/android_src/vendor/Mol/security/proct_mol$ cd ../../../../
大家看後肯定覺得這一步很多餘,根本沒有必要單獨提出來,但後來證明把這步提下還是很有必要的,因為第5步的操作必須要在根目錄下執行,不然會出錯.
4 、編譯系統
/android_src$ make -j4 PRODUCT-proct_mol-user dist
這個怎麼跟平時的編譯不一樣,後面多了兩個參數PRODUCT-proct_mol-user 和 dist. 編譯完成之後回在/android_src/dist/目錄內生成個proct_mol-target_files開頭的zip文件.這就是需要進行簽名的文件系統.
5 、開始簽名
android_src$ ./build/tools/releasetools/sign_target_files_apks -d vendor/Mol/security/proct_mol/ out/dist/proct_mol-target_files.zip out/dist/signed_target_files.zip
ERROR: no key specified for:
CalendarWidget.apk
Contacts_yellowpage.apk
SnsAppMain.apk
fbandroid-1.5.0.apk
AnalogClockWidget.apk
MessageWidget.apk
NewsWidget.apk
上面的意思是使用sign_target_files_apks工具採用vendor/Mol/security/proct_mol/下的key對proct_mol-target_files.zip文件進行簽名,並把簽名結果放在out/dist/signed_target_files.zip里.
從上面的簽名結果看,簽名並沒有成功,原因是由於有些apk程序已經簽過名了或者找不到對應的key. 可以通過設置過濾,不對上面的程序進行簽名.方法如下:
通過參數"-e <apkname>=" 來過濾這些程序.
android_src$ ./build/tools/releasetools/sign_target_files_apks -d vendor/Mol/security/proct_mol/ -e CalendarWidget.apk= -e Contacts_yellowpage.apk= -e SnsAppMain.apk= -e fbandroid-1.5.0.apk= -e AnalogClockWidget.apk= -e MessageWidget.apk= -e NewsWidget.apk= out/dist/proct_mol-target_files.zip out/dist/signed_target_files.zip
Enter password for vendor/Mol/security/proct_mol//media key> <----- imput the password
Enter password for vendor/Mol/security/proct_mol//platform key> <----- imput the password
Enter password for vendor/Mol/security/proct_mol//releasekey key> <----- imput the password
Enter password for vendor/Mol/security/proct_mol//shared key> <----- imput the password
rewriting RECOVERY/RAMDISK/default.prop:
replace: ro.build.tags=test-keys
with: ro.build.tags=release-keys
NOT signing: CalendarWidget.apk
NOT signing: Contacts_yellowpage.apk
signing: Mms.apk
signing: SoundRecorder.apk
signing: AccountAndSyncSettings.apk
signing: Camera.apk
.......................................................................
rewriting SYSTEM/build.prop:
replace: ro.build.tags=test-keys
with: ro.build.tags=release-keys
replace: ro.build.description= test-keys
with: ro.build.description= release-keys
replace: ro.build.fingerprint=...........................
with: ro.build.fingerprint=.............................
signing: framework-res.apk
done.
這樣就完成了android系統的簽名工作.
6 、生成image文件
android_src$ ./build/tools/releasetools/img_from_target_files out/dist/signed-target-files.zip out/dist/signed-img.zip
creating boot.img...
creating recovery.img...
creating system.img...
creating userdata.img...
cleaning up...
done.
使用img_from_target_files工具生成signed-img.zip文件.signed-img.zip文件包含了boot.img,userdate.img,system.img文件等.
7 、通過fastboot下載signed-img.zip文件
fastboot update signed-img.zip
通過fastboot就可以把簽了名的系統文件下載到手機上了。
『叄』 Android如何獲取當前操作系統的語言
使用如下代碼判斷語言(這里判斷下中文):
public static boolean isZh(Context context) {
Locale locale = context.getResources().getConfiguration().locale;
String language = locale.getLanguage();
if (language.endsWith("zh"))
return true;
else
return false;
}
下面是判斷國家:
中文:getResources().getConfiguration().locale.getCountry().equals("CN")
繁體中文: getResources().getConfiguration().locale.getCountry().equals("TW")
英文(英式):getResources().getConfiguration().locale.getCountry().equals("UK")
英文(美式):getResources().getConfiguration().locale.getCountry().equals("US")
如果不清楚當前國家的簡寫,可以直接
System.out(getResources().getConfiguration().locale.getCountry());列印出來即可。
『肆』 求一篇關於Android軟體開發的外國文獻
你說的是API吧、http://developers.androidcn.com/guide/appendix/api-levels.html
『伍』 android 正式簽名怎麼升級
簽名的方法
1) 用eclipse插件方式簽名
a) 調試簽名
eclipse插件默認賦予程序一個DEBUG許可權的簽名,此簽名的程序不能發布到market上,此簽名有效期為一年,如果過期則導致你無法生成apk文件,此時你只要刪除 debugkeystore即可,系統又會為你生成有效期為一年的新簽名
b) 開發者生成密鑰並簽名
右鍵點擊項目名,在菜單中選擇Android Tools,然後選擇Export Signed Application Package…,即可通過eclipse自定義證書並簽名
c) 開發者導出未簽名的包
右鍵點擊項目名,在菜單中選擇Android Tools,然後選擇Export Signed Application Package…,即可導出未簽名的包,之後可通過命令行方式簽名
2) 用命令行方式簽名
使用標準的java工具keytool和jarsigner來生成證書和給程序簽名
a) 生成簽名
$ keytool -genkey -keystore keyfile -keyalg RSA -validity 10000 -alias yan
註:validity為天數,keyfile為生成key存放的文件,yan為私鑰,RSA為指定的加密演算法(可用RSA或DSA)
b) 為apk文件簽名
$ jarsigner -verbose -keystore keyfile -signedjar signed.apk base.apk yan
註:keyfile為生成key存放的文件,signed.apk為簽名後的apk,base.apk 為未簽名的apk,yan為私鑰
c) 看某個apk是否經過了簽名
$ jarsigner -verify my_application.apk
d) 優化(簽名後需要做對齊優化處理)
$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
3) 在源碼中編譯的簽名
a) 使用源碼中的默認簽名
在源碼中編譯一般都使用默認簽名的,在某源碼目錄中用運行
$ mm showcommands能看到簽名命令
Android提供了簽名的程序signapk.jar,用法如下:
$ signapk publickey.x509[.pem] privatekey.pk8 input.jar output.jar
*.x509.pem為x509格式公鑰,pk8為私鑰
build/target/proct/security目錄中有四組默認簽名可選:testkey platform shared media(具體見README.txt),應用程序中Android.mk中有一個LOCAL_CERTIFICATE欄位,由它指定用哪個key簽名,未指定的默認用testkey.
b) 在源碼中自簽名
Android提供了一個腳本mkkey.sh(build/target/proct/security/mkkey.sh),用於生成密鑰,生成後在應用程序中通過Android.mk中的LOCAL_CERTIFICATE欄位指名用哪個簽名
c) mkkey.sh介紹
i. 生成公鑰
openssl genrsa -3 -out testkey.pem 2048
其中-3是演算法的參數,2048是密鑰長度,testkey.pem是輸出的文件
ii. 轉成x509格式(含作者有效期等)
openssl req -new -x509 -key testkey.pem -out testkey.x509.pem -days 10000 -subj 『/C=US/ST=California/L=MountainView/O=Android/OU=Android/CN=Android/[email protected]』
iii. 生成私鑰
openssl pkcs8 -in testkey.pem -topk8 -outform DER -out testkey.pk8 -nocrypt
把的格式轉換成PKCS #8,這里指定了-nocryp,表示不加密,所以簽名時不用輸入密碼
『陸』 android/data/cn.wps.livespace/cache/download 請問這個是
這應該是WPS這個應用的一些緩存文件。要刪除的話可能會影響WPS這個應用的運行。可以試一下。
----------------------------------------------------
更多疑問解答,盡在@安卓互助平台 新浪微博
『柒』 android編程中,Button類是TextView類的子類嗎
是的。
繼承結構是 Object
--- View
--- TextView
--- Button
在Eclipse中,可以雙擊選中需要查看的類,然後按Ctrl + T即可查看繼承結構:
『捌』 Android在中國的發展是個什麼樣的情況呢
卓躍教育認為:Android在中國的發展:
Android在中國的前景可以說十分地廣闊,首先一個是有成熟的消費者,在國內,android社區十分紅火,這些社區為android在中國的普及發展做了很好的推廣作用。國內的廠商和運營商也紛紛加入了android發展陣營,包括中國聯通,中國移動,華為通訊,中興通訊,聯想等這些知名大企業,同時又不僅僅局限於手機,國內廠家也陸續推出了採用android系統的MID產品。
『玖』 「安卓」是「Android」的官方翻譯嗎
Android是一種以linux為基礎的開放源代碼操作系統,主要使用於便攜設備。目前尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操作系統最初由AndyRubin開發,最初主要支持手機。2005年由Google收購注資,並組建開放手機聯盟開發改良,逐漸擴展到平板電腦及其他領域上。Android的主要競爭對手是蘋果公司的iOS以及RIM的BlackberryOS。2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居全球第一。2012年2月數據,Android占據全球智能手機操作系統市場52.5%的份額,中國市場佔有率為68.4%。
『拾』 關於android
Android一詞的本義指「機器人」,同時也是Google於2007年11月5日宣布的基於Linux平台的開源手機操作系統的名稱,該平台由操作系統、中間件、用戶界面和應用軟體組成,號稱是首個為移動終端打造的真正開放和完整的移動軟體。目前最好的是Android2.0的摩托羅拉Droid
[編輯本段]簡介
Android是基於Linux內核的軟體平台和操作系統,早期由Google開發,後由開放手機聯盟Open Handset Alliance)開發。它採用了軟體堆層(software stack,又名以軟體疊層)的架構,主要分為三部分。低層以Linux內核工作為基礎,只提供基本功能;其他的應用軟體則由各公司自行開發,以Java作為編寫程序的一部分。另外,為了推廣此技術,Google和其它幾十個手機公司建立了開放手機聯盟。Android在未公開之前常被傳聞為Google電話或gPhone。大多傳聞認為Google開發的是自己的手機電話產品,而不是一套軟體平台。到了2010年1月,Google開始發表自家品牌手機電話的Nexus One。目前最好的是Android2.1
對手機行業的影響
已經與HTC、NTT DoCoMo、KDDI、Motorola等世界移動領域34家公司於免費提供達成一致。今後對於移動通訊的影響勢必會進一步體現出來。但是如此廣泛公司的同盟是否能夠有效運作及以持久值得拭目以待。MOTO Droid
Android手機
2008年9月22日,美國運營商T-MobileUSA在紐約正式發布第一款Google手機——T-Mobile G1。該款手機為台灣宏達電代工製造,是世界上第一部使用Android操作系統的手機,支持WCDMA/HSPA網路,理論下載速率7.2Mbps,並支持Wi-Fi。
(右圖為搭載最新Google Android 2.0的Moto Droid)
[編輯本段]基本情況
Android 是Google開發的基於Linux平台的開源手機操作系統(在華注冊商標名為「安致」)。它摩托羅拉的首款Android手機CLIQ包括操作系統、用戶界面和應用程序 —— 行動電話工作所需的全部軟體,而且不存在任何以往阻礙移動產業創新的專有權障礙,號稱是首個為移動終端打造的真正開放和完整的移動軟體。Google與開放手機聯盟合作開發了 Android,這個聯盟由包括中國移動、摩托羅拉、高通、宏達電和 T-Mobile 在內的 30 多家技術和無線應用的領軍企業組成。Google通過與運營商、設備製造商、開發商和其他有關各方結成深層次的合作夥伴關系,希望藉助建立標准化、開放式的行動電話軟體平台,在移動產業內形成一個開放式的生態系統。
它採用了軟體堆層(software stack,又名軟體疊層)的架構,主要分為三部分:底層以Linux核心為基礎,由c語言開發,只提供基本功能。中間層包括函數庫Library和虛擬機Virtual Machine,由C+開發。最上層是各種應用軟體,包括通話程序,簡訊程序等,應用軟體則由各公司自行開發,以java編寫。
為了推廣此技術,Google和其它幾十個手機公司建立了開放手機聯盟(Open Handset Alliance)。
Android操作系統的組件如下圖:
Android 作為谷歌企業戰略的重要組成部分,將進一步推進「隨時隨地為每個人提供信息」這一企業目標的實現。全球為數眾多的行動電話用戶正在使用各種基於 Android 的電話。谷歌的目標是讓(移動通訊)不依賴於設備甚至平台。出於這個目的,Android 將補充,而不會替代谷歌長期以來奉行的移動發展戰略:通過與全球各地的手機製造商和移動運營商結成合作夥伴,開發既有用又有吸引力的移動服務,並推廣這些產品。
[編輯本段]團隊成員
白色版HTC G1Android平台的研發隊伍陣容強大,包括摩托羅拉、Google、HTC(宏達電)、PHILIPS、T-Mobile、高通、魅族、三星、LG以及中國移動在內的34家企業,都將基於該平台開發手機的新型業務,應用之間的通用性和互聯性將在最大程度上得到保持。「開放手機聯盟」表示,Android平台可以促使移動設備的創新,讓用戶體驗到最優越的移動服務,同時,開發商也將得到一個新的開放級別,更方便的進行協同合作,從而保障新型移動設備的研發速度。
34家企業的加盟,也將大大降低新型手機設備的研發成本,完全整合的「全移動功能性產品」成為「開放手機聯盟」的最終目標。
這34家企業中並不包含把持Symbian的諾基亞,以及憑借著iPhone風光正在的蘋果公司,美國運營商AT&T和Verizon,當然微軟沒有加入,獨樹一幟的加拿大RIM和他們的Blackberry也被擋在門外。
手機開放聯盟大家庭成員名單:
一、手機製造商:
台灣宏達國際電子(HTC)(Palm等多款智能手機的代工廠)
摩托羅拉(美國最大的手機製造商)
韓國三星電子(僅次於諾基亞的全球第二大手機製造商)
韓國LG電子
中國移動(全球最大的移動運營商,截至09年9月底 有7.03億用戶)
日本KDDI(2900萬用戶)
日本NTT DoCoMo(5200萬用戶)
美國Sprint Nextel(美國第三大移動運營商,5400萬用戶)
義大利電信(Telecom Italia)(義大利主要的移動運營商,3400萬用戶)
西班牙Telefónica (在歐洲和拉美有1.5億用戶)
T-Mobile(德意志電信旗下公司,在美國和歐洲有1.1億用戶)
二、半導體公司:
Audience Corp(聲音處理器公司)
Broadcom Corp(無線半導體主要提供商)
英特爾(Intel)
Marvell Technology Group
Nvidia (圖形處理器公司)
SiRF(GPS技術提供商)
Synaptics(手機用戶界面技術)
德州儀器(Texas Instruments)
高通(Qualcomm )
惠普HP(Hewlett-Packard Development Company, L.P)
三、軟體公司:
Aplix
Ascender
eBay的Skype
Esmertec
Living Image
NMS Communications
Noser Engineering AG
Nuance Communications
PacketVideo
SkyPop
Sonix Network
TAT-The Astonishing Tribe
Wind River Systems
[編輯本段]特性
·應用程序框架 支持組件的重用與替換
·Dalvik虛擬機 專門為移動設備做了優化
·內部集成瀏覽器 該瀏覽器基於開源的WebKit 引擎
·優化的圖形庫 包括2D和3D圖形庫,3D圖形庫基於OpenGL ES 1.0 (硬體加速可選)
·#SQLite 用作結構化的數據存儲
·多媒體支持 包括常見的音頻、視頻和靜態印象文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
·GSM電話 (依賴於硬體)
·藍牙Bluetooth, EDGE, 3G, and WiFi (依賴於硬體)
·照相機,GPS,指南針,和加速度計 (依賴於硬體)
·豐富的開發環境 包括設備模擬器,調試工具,內存及性能分析圖表,和Eclipse集成開發環境插件
[編輯本段]架構
下圖顯示的是Android操作系統的主要組件。每一部分將會在下面具體描述。
Android架構
[編輯本段]應用程序
Android會同一個核心應用程序包一起發布,該應用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是用JAVA編寫的。
Android 應用程序框架開發者也完全可以訪問核心應用程序所使用的API框架。該應用程序架構用來簡化組件軟體的重用;任何一個應用程序都可以發布它的功能塊並且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性限制)。該應用程序重用機制使得組建可以被用戶替換。
以下所有的應用程序都由一系列的服務和系統組成,包括:
·一個可擴展的視圖(Views )可以用來建應用程序,包括列表(lists),網格(grids),文本框(text boxes),按鈕(buttons),甚至包括一個可嵌入的web瀏覽器
·內容管理器(Content Providers )使得應用程序可以訪問另一個應用程序的數據(如聯系人資料庫),或者共享它們自己的數據。
·一個資源管理器 (Resource Manager)提供非代碼資源的訪問,如本地字元串,圖形,和分層文件( layout files )。
·一個通知管理器 (Notification Manager)使得應用程序可以在狀態欄中顯示客戶通知信息。
·一個活動類管理器 (Activity Manager)用來管理應用程序生命周期並提供常用的導航回退功能。
有關更多的細節和怎樣從頭寫一個應用程序,請參考 寫一個 Android 應用程序 部分。
Android 程序庫Android 包括一個被 Android 系統中各種不同組件所使用的 C/C++ 庫集。該庫通過 Android 應用程序框架為開發者提供服務。以下是一些主要的核心庫:
系統 C 庫 - 一個從 BSD 繼承來的標准 C 系統函數庫( libc ),專門為基於 embedded linux 的設備定製。 媒體庫 - 基於 PacketVideo OpenCORE;該庫支持錄放,並且可以錄制許多流行的音頻視頻格式,還有靜態印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 對顯示子系統的管理,並且為多個應用程序提供2D和3D圖層的無縫融合。 LibWebCore - 一個最新的web瀏覽器引擎用來支持Android瀏覽器和一個可嵌入的web視圖。 SGL - 一個內置的2D圖形引擎 3D libraries - 基於OpenGL ES 1.0 APIs實現;該庫可以使用硬體3D加速(如果可用)或者使用高度優化的3D軟加速。 FreeType - 點陣圖(bitmap)和向量(vector)字體顯示。 SQLite - 一個對於所有應用程序可用,功能強勁的輕型關系型資料庫引擎。
Android 運行庫
Android 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數功能。
每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik是針對於同時高效地運行多個VMs來實現的。Dalvik虛擬機執行.dex的Dalvik可執行文件,該格式文件針對最小內存使用做了優化。該虛擬機是基於寄存器的,所有的類都經由JAVA匯編器編譯,然後通過SDK中的dx工具轉化成.dex格式由虛擬機執行。
Dalvik虛擬機依賴於linux的一些功能,比如線程機制和底層內存管理機制。
Linux 內核Android 的核心系統服務依賴於 Linux 2.6 內核,如安全性,內存管理,進程管理,網路協議棧和驅動模型。 Linux 內核也同時作為硬體和軟體堆棧之間的硬體抽象層。
[編輯本段]硬體產品
已發布(預裝)
GOOGLE(HTC代工) Nexus one
HTC Dream
HTC Magic
HTC Hero
HTC Tattoo
MOTO CLIQ(DEXT)
MOTO Droid(Milestone)
MOTO BackFlip
MOTO XT800
MOTO XT701
MOTO XT710
Sony Ericsson X10
Qigi i6
Acer A1
HKC Pearl
HKC Imobile v413
Samsung I7500
Samsung i5700
售後安裝
一些用戶已經能夠(某些黑客,以及有限的功能)安裝Android在其它操作系統的移動設備之上:
OpenMoko手機 (Neo FreeRunner 及 Neo 1973)Motorola A1200 MingHTC VogueHTC PolarisHTC KaiserHTC Touch Diamond: 並非所有功能都被許可 (包括 Wifi)HTC Touch Pro諾基亞 N810諾基亞 770Asus EeePC 701Asus EeePC 1000HTouch Book from Always InnovatingDell Axim x51vHTC Touch HD: 並非所有功能都被許可 (包括 Wifi和音頻語音通話)Samsung Omnia: 只有基本功能(沒有相機或WiFi,需要安裝在SD卡中)Sharp Zaurus
[編輯本段]未來發展
老牌智能手機軟體平台製造商Symbian發言人則表示:Google的android只不過是另一個linux,symbian對其它軟體與其形成的競爭並不感到擔心。除了北美之外,Symbian在其它地區智能手機市場都佔有大部分市場份額。
與iPhone相似,Android採用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網功能,用戶能夠在手機上查看電子郵件、搜索網址和觀看視頻節目等,比iPhone等其他手機更強調搜索功能,界面更強大,可以說是一種融入全部Web應用的單一平台。
但其最震撼人心之處在於Android手機系統的開放性和服務免費。Android是一個對第三方軟體完全開放的平台,開發者在為其開發程序時擁有更大的自由度,突破了iPhone等只能添加為數不多的固定軟體的枷鎖;同時與Windows Mobile、Symbian等廠商不同,Android操作系統免費向開發人員提供,這樣可節省近三成成本。
Android項目目前正在從手機運營商、手機廠商、開發者和消費者那裡獲得大力支持。谷歌移動平台主管安迪·魯賓(Andy Rubin)表示,與軟體開發合作夥伴的密切接觸正在進行中。從去年11月開始,谷歌開始向服務提供商、晶元廠商和手機銷售商提供Android平台,並組建「開放手機聯盟」,其成員超過30家。
[編輯本段]市場前景
Google手機於08年10月22日正式上市,與運營商捆綁的合約價為179美元(約合人民幣1200元),現有的T-Mobile用戶可以通過網路訂購。在10月22日發布當天,將有22個國家和地區可以買到谷歌手機。在11月,將增至27個國家和地區。
谷歌手機將只能在T-Mobile網路內使用,將會有SIM卡鎖定限制。T-Mobile USA提供了兩種流量和簡訊近曝光的moto sholes(也有人稱之為moto tao)將搭載最新的android2.0操作系統包月計劃。第一檔為25美元,包括不限制的網路流量,以及一定數量的簡訊;第二檔為35美元,包括不限制的網路流量和不限數量的簡訊。G1支持各種谷歌的服務,包括Gmail、Google Maps、YouTube、Google日歷和Google Talk,內置Chrome Lite瀏覽器。使用這款手機也需要Gmail賬號。
「我愛死我的G1了!」谷歌聯合創始人拉里·佩奇(Larry Page)憧憬:「對於我來說,谷歌手機最激動人心的一點就是它的未來。它的功能很強,正如幾年前的電腦一樣。你可以上網,安裝軟體。」
T-Mobile USA為德國電信旗下移動子公司,運營GSM/HSPA網路,擁有用戶近3000萬。此次發布的谷歌手機採用高通MSM7201A處理器,支持7.2Mbps下載速率,美國運營商3G網路設定的套餐速率一般可達1Mbps以上。MSM7201A為單晶元、雙核,整合硬體加速多媒體功能、支持3D圖形,300萬像素的攝像功能可以掃描條形碼,並且有GPS功能。
在美國四大移動運營商中,T-Mobile USA處於相對弱勢的地位,不過T-Mobile在歐洲有更為強勢的是CDMA EV-DO網路,而T-Mobile USA和蘋果iPhone的獨家運營商AT&T為GSM/HSPA網路,後者在2005年12月就推出了全球第一個HSDPA商用服務。
T-Mobile USA今年5月方才在紐約推出了3G服務,目前已經在奧斯汀、巴爾的摩、波士頓、達拉斯、休斯敦、拉斯維加斯、邁阿密、明尼阿波利斯、鳳凰城、波特蘭、聖安東尼奧和聖地亞哥等12個城市增加了3G覆蓋,公司計劃年底前將3G覆蓋的城市從目前的13個增加到27個,能夠為其超過2/3的用戶提供3G服務。
市場手機品牌
摩托羅拉
摩托羅拉沉寂了一年終於要爆發了!由於受到金融危機的影響,摩托羅拉在過去的一年裡顯得極為沉寂,似乎突然蒸發掉似的,財報上的體現也是在不斷虧損,甚至還一度有傳言說摩托羅拉打算放棄手機市場。
不過摩托羅拉並沒有這樣做,而是卧薪嘗膽研發Android智能手機,意欲通過Android挽回失去的市場份額。9月10日摩托羅拉CLIQ的發布已經為摩托羅拉掙足了掌聲,接下來應該是摩托羅拉翻身仗的關鍵了。
摩托羅拉的首款Android手機CLIQ
摩托羅拉曾說過,CLIQ只不過是一款中端手機,很明顯這款Sholes才是摩托羅拉的Android旗艦。他們先是和Verizon推出了一則名「DroidDoes(Android能做到)」的廣告,從多方面告訴用戶蘋果不能而Android能。
現在他又通過郵件來宣傳這款手機,信封的封套上寫著「發布之日即將來臨」,並在一個破洞之後露出了炙熱的眼睛。而在裡面的信封上則表明了這款手機的一些特色,比如速度快,可以在黑暗中拍照,支持谷歌語音搜索等。
據台灣媒體報道,一位分析師稱,作為蘋果iPhone在今年假日季節到來之時的競爭產品,美國最大的行動電話製造商摩托羅拉的智能手機Droid自11月6日通過Verizon Wireless推出以來,其銷售量已經達到80萬部。 摩托羅拉智能手機Droid,運行的是谷歌Android操作系統。紐約RBCCapitalMarkets公司分析師馬克·休(MarkSue)周日在一份研究報告中表示,該數字將使得摩托羅拉在第四季度按計劃實現銷售100萬部目標。
馬克·休稱,摩托羅拉的銷售業績一直受到VerizonWireless廣告促銷和商店促銷的推動。Verizon Wireless把Droid作為iPhone新版本的競爭產品向蘋果發起了挑戰。蘋果新版iPhone截止6月份的第一個周末銷售量就超過100萬部。
馬克·休稱:「在假日季節到來曾用名,VerizonWireless加強了Droid的營銷。摩托羅拉在產品方面得很出色,我們對超過100家商店的調查顯示,該產品需求很強勁。」這位分析師表示,摩托羅拉股價表現將好於競爭對手。
市場研究公司NPDGroup今年8月份稱,蘋果的iPhone和RIM的BlackBerryCurve手機第二季度在美國智能手機市場處於領先位置。高端手機能夠讓用戶發送電郵並且編輯文檔。
周一在紐約證券交易所,摩托羅拉股價下跌0.19美元,報收於8.01美元,跌幅2.3%。摩托羅拉股價今年以來已經上漲81%。總部位於美國紐約的Verizon通信公司(VerizonCommunications)周一股價下跌0.17美元,報收於31.46美元,該公司股價今年以來已經下跌7.2%。Verizon無線是Verizon通信公司同英國沃達豐公司的合資企業。
琦基
去年11月27日,琦基發布了全球首款Google Android/Windows Mobile雙操作系統的智能手機琦基i6,採用Google Android操作系統的叫做琦基i6 goal,採用Windows Mobile操作系統的叫做琦基i6 Win。
華碩
華碩公司CEO沈振來日前在CES展會上向媒體表示,公司正在考慮推出一款Eee品牌手機,並可能基於Google Android操作系統。
聯想
OMS和T-mobile G1搭載的Android(以最初上市版本為主)的不同之處就是可以使用戶自行關閉正在運行的程序而不是由系統控制:按住屏幕上方向下拖動即可看到任務管理器。 樂Phone是聯想最新推出的一款Android系統手機,將於2010年5月發布。
HKC Pearl
做為目前在市面上唯一正式銷售的Windows和Android系統雙系統手機,這款HKC Pearl 珍珠珠配備了QVGA屏幕,內存採用了128MB/256MB的標准配置,主處理器採用PXA 310處理器,624Mhz的主頻性能非常強勁,而且機器還配備了Wi-Fi,藍牙2.0無線傳輸設置。
華為
造型上,U8230在外觀上有別於其他Android手機的塑料風格,通體的銀灰色和正面功能鍵盤的發絲紋路都洋溢著商務機型的味道。而作為功能上的特色,U8230擁有一塊3.5英寸的大屏幕、高達1500毫安時的鋰電池和一枚320萬象素攝像頭採用Android平台1.5版本。預計將於下半年正式發售。
海爾
海爾H7採用的是Android OS 1.5系統,不過如果H7上市時Android OS已經升級到2.0版的話海爾應該會一步到位選擇Android OS 2.0。由於海爾在亞洲電信展上展示的H7隻是模型機,因此這款手機與HTC的Android機型相比究竟如何尚不得而知。不過海爾的規格說明書表明,H7將會配備2.8英寸觸摸顯示屏,內置WiFi、GPS和藍牙模塊,支持FM收音,配備200萬象素攝像頭,支持閃光燈功能。
華禹
xPhone是由上海禹華通信技術有限公司設計的,採用類iphone的觸控設計,配置了3寸WQVGA解析度的觸摸屏,內建300W像素的攝像頭,搭載Android平台,採用主頻 624Mhz的Marvell PXA-310處理器,擁有128MB SDRAM+256MB ROM的內存配置,支持最大16GB的存儲卡擴展,給出的參數中居然還加入了WiFi功能,該機尚未正式發布,我們就靜候佳音吧。
宏基Acer A1採用高通8250處理器,最新Android 1.6版本操作系統,512 MB內存,3.5英寸觸控屏,可支持GSM和WCDMA雙制式,內置GPS,500萬像素攝像頭,支持micro SD擴展。09年9月底開始在法國和德國接受預定,Acer A1售價為389.99歐元。國外品牌摩托羅拉摩托羅拉 Cliq是全球首款發售的Android操作系統智能手機,採用側滑蓋設計,支持GSM和WCDMA雙頻,3.1英寸屏幕,320×480像素屏幕解析度,內置500萬攝像頭,機身自帶256MB內存,支持micro SD擴展。該機最大特色是支持世界上主流社。而最,據悉將在十月上市。
魅族
即將推出的魅族M8 3G版本,使用微軟CE與Android雙系統。
分別推出TD.WCDMA.CDMA2000版本。
[編輯本段]Android在中國
android在中國的前景十分廣闊,首先是有成熟的消費者,在國內,android社區十分紅火,這些社區為android在中國的普及做了很好的推廣作用。國內廠商和運營商也紛紛加入了android陣營,包括OPPO,中國移動,中國聯通,華為通訊,聯想等大企業。