锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 緙栧啓錛氬緪寤虹ゥ(netpirate@gmail.com) 鏃ユ湡錛?010/11/22 緗戝潃錛歨ttp://www.anymobile.org 涓昏娑夊強涓や釜鎶鏈偣錛?/p>
1銆佸浘鏍囧姞鐏拌壊榪囨護錛?/p>
2銆乤ndroid鐨勫浘鐗囪祫婧愰粯璁ゆ槸闈欐佺殑錛屽崟瀹炰緥錛涘鏋滀袱涓狪M濂藉弸鐨勫ご鍍忎竴鏍鳳紝鏈綆鍗曠殑閮芥槸鐢ㄧ殑杞歡鑷甫澶村儚錛屾湁涓涓湪綰匡紝涓涓綰匡紝鐩存帴鏀瑰彉澶村儚鐨勭伆搴︼紝鍒欎袱涓敤鎴風殑澶村儚閮戒細鍙樼伆鎴栬呭湪綰匡紝絳旀鏄細Drawable.mutate()銆?/p>
浠g爜濡備笅錛?/p>
OVER錛?/p>
緙栧啓錛氬緪寤虹ゥ(netpirate@gmail.com) 鏃ユ湡錛?010/10/12 緗戝潃錛歨ttp://www.anymobile.org 鍙嶇紪璇戝寘鎷細 odex+apk->apk crack xml crack drawable crack class 娑夊強杞歡錛?/p>
apktool dex2jar jdgui AXMLPrinter2 smali Auto-sign --寰呯畫…… XX for Android Design 璁捐鏂囨。 [ Android騫沖彴XX瑙嗛鑱婂ぉ/XX for Android] 鏃ユ湡: 2010.07.20. 緙栧啓: 寰愬緩紲?nbsp; 緗戝潃錛歨ttp://www.anymobile.org 淇敼璁板綍錛?nbsp; 2010-07-20 寰愬緩紲?nbsp; 2010-08-06 寰愬緩紲?nbsp; 鐩?褰?nbsp; 1. 欏圭洰姒傝堪 1.1. 鍔熻兘浠嬬粛 1.2. 寮鍙戠幆澧?/p>
1.3. 榪愯鐜 1.4. 鍚嶈瘝瑙i噴 2. 緋葷粺鏋舵瀯 3. 妯″潡璁捐 3.1. Android娑堟伅閫氳 3.1.1. Intent鎰忓浘 3.1.2. Broadcast Receiver騫挎挱鎺ュ彈鑰?/p>
3.1.3. Thread Message綰跨▼娑堟伅 3.1.4. callback鏈哄埗 3.1.5. Observer瑙傚療鑰呮ā寮?nbsp; 3.1.6. Listener鐩戝惉鍣?nbsp; 3.2. AV寮曟搸搴?nbsp; 3.3. 鍗忚搴?nbsp; 4. 浣撶郴緇撴瀯 5. 嫻佺▼璁捐 5.1. 娉ㄥ唽 5.2. 鐧誨綍 5.3. 娉ㄩ攢 5.4. 鐐瑰鐐硅亰澶?nbsp; 5.4.1. 鍙戦佹枃瀛楄亰澶╂暟鎹?nbsp; 5.4.2. 鎺ュ彈鏂囧瓧鑱婂ぉ鏁版嵁 5.4.3. 鍙戦侀煶瑙嗛鑱婂ぉ鏁版嵁 5.4.4. 鎺ュ彈闊寵棰戝濯掍綋鏁版嵁 5.4.5. 涓誨姩鍏抽棴鑱婂ぉ 5.4.6. 瀵規柟鍏抽棴鑱婂ぉ 5.5. 鐭俊閭璇瘋棰戣亰澶?nbsp; 5.6. 鑱婂ぉ瀹よ亰澶?nbsp; 5.7. 鑱婂ぉ瀹よ漿鐐瑰鐐硅亰澶?nbsp; 5.7.1. 涓誨姩閭璇瘋亰鍙嬭亰澶?nbsp; 5.7.2. 鎺ュ彈鑱婂弸鑱婂ぉ閭璇?nbsp; 5.8. WAP鐢ㄦ埛浠ュ強TCP浠g悊鏈嶅姟鍣?/p>
6. 鎺ュ彛璁捐 6.1. JNI 6.2. PTS 6.3. AV Engine 7. 鏁版嵁瀛樺偍 7.1. Shared Preferences 7.2. SQLite Database 8. 縐繪鐩稿叧 8.1. io杈撳叆杈撳嚭鐩稿叧 8.2. os鎿嶄綔緋葷粺鐩稿叧 8.3. timer瀹氭椂鍣?nbsp; 8.4. socket緗戠粶 8.5. log鏃ュ織 鍙傝冩枃妗?nbsp; 1. 欏圭洰姒傝堪 1.1.鍔熻兘浠嬬粛 XX瑙嗛鑱婂ぉ鎵嬫満錛屽湪2.5G緗戠粶涓婂疄鐜版墜鏈鴻棰戜簰鍔紝璁╁箍澶ф墜鏈虹敤鎴蜂韓鍙楀埌3G鍔熻兘銆傚疄鐜板叏鐞冧簰閫氾紝鏃犻渶婕父璐癸紝浣垮緱閫氳璐圭敤澶т負闄嶄綆錛涙澶栵紝涔熸敮鎸佹墜鏈哄PC鐨勫弻鍚戣棰戣亰澶╋紝浠庤屼嬌浜轟滑鍙互闅忔椂銆侀殢鍦?#8220;瑙侀潰”錛岃涓栫晫鍙樼殑鏇村皬銆?nbsp; XX for Android鏄棰戣亰澶╄蔣浠禭X鐨凙ndroid鐗堟湰錛屽疄鐜頒簡鎵嬫満鐢ㄦ埛涓庤壘綾寵亰鍙嬫垨閫氳褰曞ソ鍙嬬偣瀵圭偣瑙嗛銆佽闊熾佹枃瀛楄亰澶╋紝鍙﹀鐢ㄦ埛鍙互浣跨敤瑙嗛銆佽闊熾佹枃瀛楄亰澶╁鍔熻兘銆?nbsp; 1.2.寮鍙戠幆澧?nbsp; Windows XP + Cygwin / Ubuntu 10.3 JAVA: IDE: JDK 1.5 + Eclipse3.5 + ADT0.9.6 + CDT 1.0.0 SDK: Android SDK NDK: Android-NDK-r3 C/C++: C搴? BSD C搴撶簿綆鐗?bionic 1.3.榪愯鐜 Android騫沖彴1.5鍙婁互涓婂浐浠剁増鏈?/p>
1.4.鍚嶈瘝瑙i噴 銆怉ndroid銆慜HA緇勭粐寮鍙戠殑錛屽寘鎷搷浣滅郴緇熴佷腑闂翠歡鍜屾牳蹇冨簲鐢ㄧ殑縐誨姩璁懼杞歡闆嗗悎銆?/p>
2.緋葷粺鏋舵瀯 涓昏鍖呮嫭4涓ā鍧楀眰嬈★細UI浜や簰灞傦紱JNI鎺ュ彛灞傦紱鏍稿績搴旂敤灞傦紝浠ュ強緋葷粺閫傞厤灞傘?/p>
錛堝浘鐣ワ級 UI浜や簰灞傦細 涓昏瀹炵幇浜嗕漢鏈轟氦浜掔晫闈紝浠ュ強涓浜涙鏋剁被絳夛紝閫氳繃涓嶅悓鐨勫満鏅畬鎴愪駭鍝佸姛鑳斤紝姣忎釜鍦烘櫙鍙互鍖呭惈澶氫釜鐣岄潰錛屾瘡涓満鏅彲浠ュ鐞嗙壒瀹氱殑閫氱煡娑堟伅銆?/p>
JNI鎺ュ彛灞傦細 琛旀帴Java涓嶤/C++浠g爜灞傦紝鏄疷I浜や簰灞備笌PTS鍗忚妯″潡鍜孉V寮曟搸浜や簰鐨勬灑綰斤紝鎻愪緵鑷笂鑰屼笅鐨勬鍚戣皟鐢紝浠ュ強鑷笅鑰屼笂鐨刢allback璋冪敤鏈哄埗銆?/p>
緋葷粺閫傞厤灞傦細 鎻愪緵緋葷粺騫沖彴鐩稿叧鐨剋rapper瀹炵幇錛屽io銆乷s銆乼imer銆乻ocket絳夈?/p>
鏍稿績搴旂敤灞傦細 縐繪鐨勬牳蹇冨簱錛屽寘鎷崗璁簱鍜孉V寮曟搸搴撱?/p>
緙栧啓錛氬緪寤虹ゥ(netpirate@gmail.com) 鏈榪戝嚑涓湀涓鐩村湪璐熻矗鏌愬嵆鏃墮氳杞歡鐨勬櫤鑳芥墜鏈哄鉤鍙板紑鍙戝伐浣滐紙宸茬粡鏈夋墜鏈哄巶鍟嗗拰榪愯惀鍟嗙殑瀹氬埗鐗堬紝榪戞棩灝嗗彂甯冨叕鐗堬級錛屽弬鑰冧簡iphone鐨勮璁¢鏍鹼紝浠ュ強QQ for Android鐨勫姛鑳借璁★紝浠g爜瀹屽叏鑷富寮鍙戯紝涓昏娑夊強浠ヤ笅鏂歸潰錛?/p>
--璋冪爺鏂規 () --> <<XX for Android porting 縐繪鏂囨。>> --闇姹?/p>
() --> <<XX for Android UI Spec 浜у搧璁捐鏂囨。>> --璁捐 () --> <<XX for Android design 璁捐鏂囨。>> --寮鍙?/p>
()AndroidManifest璁劇疆錛歞ebugable/launchModel/task/minSDK/... ()嬈㈣繋鐣岄潰涓庡垵濮嬪寲媯嫻嬶細鎵嬫満鍗?緗戠粶/SD鍗?IMEI/IMSI/ACTIVE NETWORK/WIFI/SDCard) ()娉ㄥ唽/鐧誨綍鐣岄潰涓庡姩鐢?frame animation)銆佹暟鎹瓨鍌?DB & Share Proferences)銆佺綉緇?TCP/CP & HTTP) ()涓葷晫闈笌TAB璁捐(TabHost & TabWidget) ()鏇存崲鐨偆絳変富棰?Theme) ()鍛煎彨灝忕獥鍙?Custom Dialog) ()宸ュ叿鏉?Menu layout & onClick) ()涓ょ駭鑱婂ぉ瀹ゅ垪琛?GroupList & ChildView) ()鐢佃瘽綈?Contact v1.0 & Contact v2.0) ()璧勬枡璁劇疆(Radio & EditView & CheckBox) ()娑堟伅琛ㄦ儏(GridView & SpanningString) ()杞歡榪愯漿鍒板悗鍙幫紝鍦ㄧ姸鎬佹爮鏄劇ず杞歡鍥炬爣(Statusbar) ()杞歡鏇存柊--HTTP媯嫻嬫帴鍙o紱XML鏁版嵁鏍煎紡瑙f瀽錛涘綰跨▼涓嬭澆錛涜蔣浠惰鐩栧畨瑁?XML Parser & MultiThread) ()鎵嬫満鍙風爜緇戝畾涓庣煭淇$洃鎺у櫒(SMS Observer) ()鎹曡幏鎸夐敭錛欻OME/BACK/SEARCH錛宱n ACTIVITY & DIALOG錛屽悗閫閿彲浠ラ氳繃onKeyDown鎹曡幏錛涙悳绱㈤敭鍙互閫氳繃onDispathEvent鑾鋒倝錛屽叾浼歞ismiss瀵硅瘽妗?/p>
()鐩告満鐨勬湰鍦伴瑙堢珫灞忕獥鍙o紝榛樿鍙敮鎸佹í灞忛瑙?Camera Preview) ()鑱婂ぉ涓庢秷鎭満鍒?listener/Callback/Intent/Handler Message/Thread Message) ()JNI & AIDL ()鑷畾涔夌粍浠?Activity/Button/Dialog/ListView/In-Out) ()OpenGL & 3D () --嫻嬭瘯 --> <<XX for Android v0.X.X 嫻嬭瘯鎶ュ憡>> ()Eclipse Debug(USB / Serial port) ()妯℃嫙鍙戦佺煭淇″拰鐢佃瘽鍛煎叆(ddms / command) ()鎶撴棩蹇椾笌鎴睆(adb & ddms & logcat) () --鍙戝竷 --> <<XX for Android Deploy 閮ㄧ講鏂囨。>> ()MD5絳夌紪鐮?/p>
()杞歡婧愪唬鐮佹販娣?/p>
()ANT鑴氭湰 () 浠ヤ笂寮鍙戦儴鍒嗛渶緇撳悎杞歡婧愮爜紺轟緥錛屽緟緇?#8230;… 鏁寸悊錛氬緪寤虹ゥ(netpirate@gmail.com) RIL鐨勭嚎紼嬪拰浜嬩歡 涓鍏卞垱寤轟簡3涓嚎紼嬶紝5涓簨浠訛細 絎竴涓嚎紼媠_tid_dispath澶勭悊鎵鏈塮d錛坰ocket錛宲ipe錛宲ort錛夊搴旂殑浜嬩歡澶勭悊錛屽鐞嗗拰涓婂眰RIL.JAVA鑱旂郴鏄涓涓嚎紼嬪拰瀵瑰簲鐨?涓簨浠躲?br />
絎簩涓嚎紼媠_tid_mainloop鍜岀涓変釜綰跨▼s_tid_reader閫氳繃紜歡灞傝繛鎺ョ殑fd錛屾潵澶勭悊readline,processline錛屽鐞嗕笅灞傜‖浠剁浉鍏熾?/p>
緙栧啓錛氬緪寤虹ゥ(netpirate@gmail.com) [ro.product.board]: [C8600] 鏁寸悊錛氬緪寤虹ゥ(netpirate@gmail.com) 甯傞潰涓婁富嫻佺殑嫻忚鍣? Android Browser 涓昏鍒嗘垚涓変釜閮ㄥ垎: 1. Webkit Engine (C++):JavascriptCore,WebCore,Webkit; 1. JavaScriptCore錛?br />
Javascript 寮曟搸 2. WebCore----render engine錛?br />
瑙f瀽欏甸潰錛岀敓鎴怐OM tree 鍜?render tree錛屾渶緇坮ender鏁翠釜欏甸潰鍒癰ackground銆?/p>
緗戠粶鎺ュ彛灝佽 3. Webkit-------鍜屽鉤鍙扮浉鍏崇殑background瀹炵幇錛?br />
閲岄潰鍖呮嫭浜哸ndroid 騫沖彴鐨勫疄鐜幫紝鍏蜂綋鏄氳繃JNI鍜宖ramework 閲岄潰鐨剋ebview銆?/p>
WebCore鐨勯珮灞傚皝瑁?br />
鎻愪緵涓嶣ackEnd涓鐩寸殑騫沖彴鏀拺 source analysis錛?/p>
1. bindings ---灝唈avaScript 涓璞″拰DOM瀵硅薄榪涜緇戝畾錛屾瘮濡倃indow瀵硅薄鍜宒ocument瀵硅薄 杞歡搴旂敤 Browsers E-mail Clients錛氫嬌鐢╓ebkit 浣淲eb 鍐呭澶勭悊 Instant Messenger/Chat Clients錛氫嬌鐢╓ebkit瀵規秷鎭繘琛屾覆鏌撳拰鏍峰紡鍖?br />
-iChat AV – Apple RSS Readers錛氫嬌鐢╓ebkit鏉ュ鐞嗗拰鐜板疄鏂伴椈鎽樿錛屼互鍙奆eed榪炴帴鍒扮殑瀹屾暣鏂囨。 緙栧啓錛氬緪寤虹ゥ(netpirate@gmail.com) 鍙嶇紪璇戝寘鎷細 odex+apk->apk crack xml crack drawable crack class 娑夊強杞歡錛?/p>
apktool dex2jar jdgui AXMLPrinter2 smali Auto-sign --寰呯畫……
鏃ユ湡錛?010/10/12
緗戝潃錛歨ttp://www.anymobile.org
鏃ユ湡錛?009/09/21
緗戝潃錛?a style="text-decoration: none; color: #336699; ">http://www.anymobile.org
鍒濆鍖栨祦紼嬶紝涓誨叆鍙nit.rc, rild.c涓殑main鍑芥暟錛屼富瑕佸畬鎴愪笁涓換鍔★細
1. 寮鍚痩ibril.so涓殑event鏈哄埗錛?鍦≧IL_startEventLoop涓紝鏄渶鏍稿績鐨勭敱澶氳礬I/O椹卞姩鐨勬秷鎭驚鐜?br />
2. 鍒濆鍖杔ibrefrence_ril.so錛屼篃灝辨槸璺熺‖浠舵垨妯℃嫙紜歡modem閫氫俊鐨勯儴鍒嗭紙鍚庨潰緇熶竴縐扮‖浠訛級錛?閫氳繃RIL_Init鍑芥暟瀹屾垚銆?br />
3. 閫氳繃RIL_Init鑾峰彇涓緇勫嚱鏁版寚閽圧IL_RadioFunctions錛?騫墮氳繃RIL_register瀹屾垚娉ㄥ唽錛屽茍鎵撳紑鎺ュ彈涓婂眰鍛戒護鐨剆ocket閫氶亾銆?/p>
s_wakeupfd_event(s_fdWakeupRead,pipe),
s_listen_event(s_fdListen,socket RILD),
s_commands_event(accept(s_fdListen...)),
s_debug_event(s_fdDebug,socket RILD-debug),
-1.
鏃ユ湡錛?010/08/12
緗戝潃錛?a style="text-decoration: none; color: #336699; ">http://www.anymobile.org
Huawei_C8600澶栧艦鐪嬭繕鍙互錛岀‖浠墮厤緗涓嬶細
[ro.product.brand]: [China Telecom]
[ro.product.manufacturer]: [HUAWEI]
[ro.board.platform]: [msm7k]
[ro.config.browser_useragent1]: [Mozilla/5.0 (HW-C8600/C8600V100R001C92B225;U;Android/2.1;]
[ro.config.browser_useragent2]: [320*480;CTC/2.0) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17]
[ro.build.description]: [MSM7x25-user 2.1-update1 ERE27 20100707 ota-rel-keys,release-keys]
瀹冧富瑕佹湁2鐐規瘮杈冩湁鍚稿紩鍔涳細
1銆佽嚜鍔ㄥ畨瑁呴┍鍔ㄧ▼搴忥紱
璇ユ満鍨嬮氳繃USB鐨勬柟寮忥紙鎵嬫満褰揢鐩樼敤錛夛紝涓誨姩瀹夎SD鍗′笅闈㈢殑鍙墽琛屾枃浠訛紝瀹夎椹卞姩銆?br />
榪欑鏂規硶鐨勫ソ澶勶細浣跨敤蹇嵎錛屾棤闇闅忚闄勮禒椹卞姩紼嬪簭
榪欑鏂規硶鐨勭己鐐癸細SD鍗$殑涓嶅皯紼嬪簭鍏跺疄閮芥湁鐥呮瘨鐨勭壒寰侊紝360瀹夊叏杞歡媯嫻嬪悗鎻愮ず鏄疦newheur_PE鐥呮瘨銆?br />
2銆並VM铏氭嫙鏈?br />
璇ユ満鍨嬪畨瑁呬簡鏃ユ湰璐靛徃鐨凨VM錛欽Blend錛屽彲浠ラ夋嫨鎵弿SD鍗℃嫻媕ad/jar鏂囦歡錛屾湁浜嗙被浼肩殑鏈哄瓙錛孞2ME騫沖彴縐繪鐨勯棶棰樿В鍐蟲潵鍜紝浣跨敤KVM鐨凨NI璋冪爺鍔ㄦ佸簱銆?br />
鏃ユ湡錛?009/09/09
緗戝潃錛?a style="text-decoration: none; color: #336699; ">http://www.anymobile.org
a. IE錛屽唴鏍窽rident錛?br />
b. FireFox錛屽唴鏍革細Gecko錛?br />
c. Safari, Google Chrome錛屽唴鏍革細Webkit錛?br />
d. Opera錛屽唴鏍?Presto銆?/p>
Webkit Architecture
2. Framework WebView (Java);
3. Browser app (java).
KJS榪涘寲鍒癝quirrel Fish
鍩烘湰鐨勬ā鏉垮簱WTF
鍩烘湰鐨勬鍒欒〃杈懼紡瑙f瀽妯″潡PCRE
鍩烘湰緙栫爜杞崲妯″潡錛屼緷璧朓CU榪涜
JS瑙f瀽/緙栬瘧寮曟搸
JS榪愯搴?/p>
HTML瑙f瀽寮曟搸
XML瑙f瀽寮曟搸
CSS瑙f瀽寮曟搸
JS 瀹㈡埛绔璞″皝瑁?br />
緗戦〉娓叉煋寮曟搸
BackEnd灝佽涓庡疄鐜?br />
SVG
HTML Editing
Plugins
緗戦〉鍐呭澶勭悊錛孖mage/Icon
銆傘傘?/p>
鎻愪緵緇橶ebCore鐢ㄦ埛鎿嶆帶鐩稿叧鐨勬敮鎾戞帴鍙?/p>
2. bridge ----灝唈avascript瀵硅薄鍜岃嚜瀹氫箟鐨勫璞$粦瀹?br />
3. css -------瀹炵幇浜哻ss 2.0 鐨勬爣鍑?br />
4. dom-------DOM鏍戠殑鐩稿叧瀵硅薄
5. editing-------鎵鏈変簬Edit鐩稿叧鍔熻兘錛屾瘮濡俬tml涓殑緙栬緫妗?br />
6. html -------html 璇█鐨勮В鏋?br />
7. loader ------- 鍔犺澆緗戦〉璧勬簮浠ュ強Cache錛孎rameLoader ImageLoader
8. platform----- 鍜屽鉤鍙版湁鍏崇殑錛屾瘮濡?鍥懼儚decoder錛屽浘褰㈢殑緇樺埗錛岀綉緇滄搷浣滐紝瀛椾綋絳?br />
9. plugin------瀹炵幇浜嗗熀浜嶯etscape鐨?NPAPI (Netscape Plugin Application Programming Interface ) 鐨勬鏋?br />
10. rendering--------- render tree 鐩稿叧瀵硅薄
11. resource ------PC 嫻忚鍣╯afair 鐢ㄥ埌鐨勮祫婧愶紝瀵逛簬android鏉ヨ娌$敤
12. svg ---------- svg 璇█鐨勮В鏋?br />
13. wml----------- wml 璇█鐨勮В鏋?br />
14. xml------------xml 璇█鐨勮В鏋愪互鍙奨SLT 杞崲錛岄渶瑕乴ibxslt
-Safari
-Google Chrome/Chromium
-OmniWeb
-Osb-browser – Nokia
-Web Browser for S60 – Nokia
-QT Browser Engine
-Entourage 2008 – Microsoft (for Mac)
-Mail-Apple
-Mailplane 鐗瑰畾鐨凣mail緇堢
-MSN Messenger – Microsoft (Mac)
-Yahoo! Messenger
-MiNews
-NetNewsWire
-NewsFire
-PixelNews
鏃ユ湡錛?010/10/12
緗戝潃錛歨ttp://www.anymobile.org
鏃ユ湡錛?/span>
緗戝潃錛?/span>http://www.anymobile.org
鏈榪戝嚑涓湀涓鐩村湪璐熻矗鏌愬嵆鏃墮氳杞歡鐨勬櫤鑳芥墜鏈哄鉤鍙板紑鍙戝伐浣滐紙宸茬粡鏈夋墜鏈哄巶鍟嗗拰榪愯惀鍟嗙殑瀹氬埗鐗堬紝榪戞棩灝嗗彂甯冨叕鐗堬級錛屽弬鑰冧簡iphone鐨勮璁¢鏍鹼紝浠ュ強QQ for
Android鐨勫姛鑳借璁★紝浠g爜瀹屽叏鑷富寮鍙戯紝涓昏娑夊強浠ヤ笅鏂歸潰錛?/span>
--璋冪爺鏂規
() --> <<XX for Android porting 縐繪鏂囨。>>
--闇姹?/span>
() --> <<XX for Android UI Spec 浜у搧璁捐鏂囨。>>
--璁捐
() --> <<XX for Android design 璁捐鏂囨。>>
--寮鍙?/span>
()AndroidManifest璁劇疆錛?/span>debugable/launchModel/task/minSDK/...
()嬈㈣繋鐣岄潰涓庡垵濮嬪寲媯嫻嬶細鎵嬫満鍗?/span>/緗戠粶/SD鍗?/span>(IMEI/IMSI/ACTIVE
NETWORK/WIFI/SDCard)
()娉ㄥ唽/鐧誨綍鐣岄潰涓庡姩鐢?/span>(frame
animation)銆佹暟鎹瓨鍌?/span>(DB &
Share Proferences)銆佺綉緇?/span>(TCP/CP & HTTP)
()涓葷晫闈笌TAB璁捐(TabHost
& TabWidget)
()鏇存崲鐨偆絳変富棰?/span>(Theme)
()鍛煎彨灝忕獥鍙?/span>(Custom Dialog)
()宸ュ叿鏉?/span>(Menu layout & onClick)
()涓ょ駭鑱婂ぉ瀹ゅ垪琛?/span>(GroupList & ChildView)
()鐢佃瘽綈?/span>(Contact v1.0 & Contact v2.0)
()璧勬枡璁劇疆(Radio & EditView & CheckBox)
()娑堟伅琛ㄦ儏(GridView & SpanningString)
()杞歡榪愯漿鍒板悗鍙幫紝鍦ㄧ姸鎬佹爮鏄劇ず杞歡鍥炬爣(Statusbar)
()杞歡鏇存柊--HTTP媯嫻嬫帴鍙o紱XML鏁版嵁鏍煎紡瑙f瀽錛涘綰跨▼涓嬭澆錛涜蔣浠惰鐩栧畨瑁?/span>(XML Parser &
MultiThread)
()鎵嬫満鍙風爜緇戝畾涓庣煭淇$洃鎺у櫒(SMS Observer)
()鎹曡幏鎸夐敭錛?/span>HOME/BACK/SEARCH錛?/span>on ACTIVITY & DIALOG錛屽悗閫閿彲浠ラ氳繃onKeyDown鎹曡幏錛涙悳绱㈤敭鍙互閫氳繃onDispathEvent鑾鋒倝錛屽叾浼?/span>dismiss瀵硅瘽妗?/span>
()鐩告満鐨勬湰鍦伴瑙堢珫灞忕獥鍙o紝榛樿鍙敮鎸佹í灞忛瑙?/span>(Camera Preview)
()鑱婂ぉ涓庢秷鎭満鍒?/span>(listener/Callback/Intent/Handler Message/Thread Message)
()JNI & AIDL
()鑷畾涔夌粍浠?/span>(Activity/Button/Dialog/ListView/In-Out)
()OpenGL & 3D
()
--嫻嬭瘯 --> <<XX for Android v0.X.X 嫻嬭瘯鎶ュ憡>>
()Eclipse Debug(USB / Serial port)
()妯℃嫙鍙戦佺煭淇″拰鐢佃瘽鍛煎叆(ddms / command)
()鎶撴棩蹇椾笌鎴睆(adb & ddms & logcat)
()
--鍙戝竷 --> <<XX for Android Deploy 閮ㄧ講鏂囨。>>
()MD5絳夌紪鐮?/span>
()杞歡婧愪唬鐮佹販娣?/span>
()ANT鑴氭湰
()
浠ヤ笂寮鍙戦儴鍒嗛渶緇撳悎杞歡婧愮爜紺轟緥錛屽緟緇?#8230;…
[ro.product.board]: [C8600]
[ro.product.brand]: [China Telecom]
[ro.product.manufacturer]: [HUAWEI]
[ro.board.platform]: [msm7k]
[ro.config.browser_useragent1]: [Mozilla/5.0 (HW-C8600/C8600V100R001C92B225;U;Android/2.1;]
[ro.config.browser_useragent2]: [320*480;CTC/2.0) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17]
[ro.build.description]: [MSM7x25-user 2.1-update1 ERE27 20100707 ota-rel-keys,release-keys]
瀹冧富瑕佹湁2鐐規瘮杈冩湁鍚稿紩鍔涳細
1銆佽嚜鍔ㄥ畨瑁呴┍鍔ㄧ▼搴忥紱
璇ユ満鍨嬮氳繃USB鐨勬柟寮忥紙鎵嬫満褰揢鐩樼敤錛夛紝涓誨姩瀹夎SD鍗′笅闈㈢殑鍙墽琛屾枃浠訛紝瀹夎椹卞姩銆?br />
榪欑鏂規硶鐨勫ソ澶勶細浣跨敤蹇嵎錛屾棤闇闅忚闄勮禒椹卞姩紼嬪簭
榪欑鏂規硶鐨勭己鐐癸細SD鍗$殑涓嶅皯紼嬪簭鍏跺疄閮芥湁鐥呮瘨鐨勭壒寰侊紝360瀹夊叏杞歡媯嫻嬪悗鎻愮ず鏄疦newheur_PE鐥呮瘨銆?br />
2銆並VM铏氭嫙鏈?br />
璇ユ満鍨嬪畨瑁呬簡鏃ユ湰璐靛徃鐨凨VM錛欽Blend錛屽彲浠ラ夋嫨鎵弿SD鍗℃嫻媕ad/jar鏂囦歡錛屾湁浜嗙被浼肩殑鏈哄瓙錛孞2ME騫沖彴縐繪鐨勯棶棰樿В鍐蟲潵鍜紝浣跨敤KVM鐨凨NI璋冪爺鍔ㄦ佸簱銆?br />
RIL鐨勭嚎紼嬪拰浜嬩歡
涓鍏卞垱寤轟簡3涓嚎紼嬶紝5涓簨浠訛細
s_wakeupfd_event(s_fdWakeupRead,pipe),
s_listen_event(s_fdListen,socket RILD),
s_commands_event(accept(s_fdListen...)),
s_debug_event(s_fdDebug,socket RILD-debug),
-1.
絎竴涓嚎紼媠_tid_dispath澶勭悊鎵鏈塮d錛坰ocket錛宲ipe錛宲ort錛夊搴旂殑浜嬩歡澶勭悊錛屽鐞嗗拰涓婂眰RIL.JAVA鑱旂郴鏄涓涓嚎紼嬪拰瀵瑰簲鐨?涓簨浠躲?br />
絎簩涓嚎紼媠_tid_mainloop鍜岀涓変釜綰跨▼s_tid_reader閫氳繃紜歡灞傝繛鎺ョ殑fd錛屾潵澶勭悊readline,processline錛屽鐞嗕笅灞傜‖浠剁浉鍏熾?/p>
甯傞潰涓婁富嫻佺殑嫻忚鍣?
a. IE錛屽唴鏍窽rident錛?br />
b. FireFox錛屽唴鏍革細Gecko錛?br />
c. Safari, Google Chrome錛屽唴鏍革細Webkit錛?br />
d. Opera錛屽唴鏍?Presto銆?br />
Android Browser 涓昏鍒嗘垚涓変釜閮ㄥ垎:
1. Webkit Engine (C++):JavascriptCore,WebCore,Webkit;
2. Framework WebView (Java);
3. Browser app (java).
1. JavaScriptCore錛?br />
Javascript 寮曟搸
KJS榪涘寲鍒癝quirrel Fish
鍩烘湰鐨勬ā鏉垮簱WTF
鍩烘湰鐨勬鍒欒〃杈懼紡瑙f瀽妯″潡PCRE
鍩烘湰緙栫爜杞崲妯″潡錛屼緷璧朓CU榪涜
JS瑙f瀽/緙栬瘧寮曟搸
JS榪愯搴?/p>
2. WebCore----render engine錛?br /> 瑙f瀽欏甸潰錛岀敓鎴怐OM tree 鍜?render tree錛屾渶緇坮ender鏁翠釜欏甸潰鍒癰ackground銆?/p>
緗戠粶鎺ュ彛灝佽
HTML瑙f瀽寮曟搸
XML瑙f瀽寮曟搸
CSS瑙f瀽寮曟搸
JS 瀹㈡埛绔璞″皝瑁?br />
緗戦〉娓叉煋寮曟搸
BackEnd灝佽涓庡疄鐜?br />
SVG
HTML Editing
Plugins
緗戦〉鍐呭澶勭悊錛孖mage/Icon
銆傘傘?br />
3. Webkit-------鍜屽鉤鍙扮浉鍏崇殑background瀹炵幇錛?br /> 閲岄潰鍖呮嫭浜哸ndroid 騫沖彴鐨勫疄鐜幫紝鍏蜂綋鏄氳繃JNI鍜宖ramework 閲岄潰鐨剋ebview銆?/p>
WebCore鐨勯珮灞傚皝瑁?br />
鎻愪緵涓嶣ackEnd涓鐩寸殑騫沖彴鏀拺
鎻愪緵緇橶ebCore鐢ㄦ埛鎿嶆帶鐩稿叧鐨勬敮鎾戞帴鍙?/p>
source analysis錛?/p>
1. bindings ---灝唈avaScript 涓璞″拰DOM瀵硅薄榪涜緇戝畾錛屾瘮濡倃indow瀵硅薄鍜宒ocument瀵硅薄
2. bridge ----灝唈avascript瀵硅薄鍜岃嚜瀹氫箟鐨勫璞$粦瀹?br />
3. css -------瀹炵幇浜哻ss 2.0 鐨勬爣鍑?br />
4. dom-------DOM鏍戠殑鐩稿叧瀵硅薄
5. editing-------鎵鏈変簬Edit鐩稿叧鍔熻兘錛屾瘮濡俬tml涓殑緙栬緫妗?br />
6. html -------html 璇█鐨勮В鏋?br />
7. loader ------- 鍔犺澆緗戦〉璧勬簮浠ュ強Cache錛孎rameLoader ImageLoader
8. platform----- 鍜屽鉤鍙版湁鍏崇殑錛屾瘮濡?鍥懼儚decoder錛屽浘褰㈢殑緇樺埗錛岀綉緇滄搷浣滐紝瀛椾綋絳?br />
9. plugin------瀹炵幇浜嗗熀浜嶯etscape鐨?NPAPI (Netscape Plugin Application Programming Interface ) 鐨勬鏋?br />
10. rendering--------- render tree 鐩稿叧瀵硅薄
11. resource ------PC 嫻忚鍣╯afair 鐢ㄥ埌鐨勮祫婧愶紝瀵逛簬android鏉ヨ娌$敤
12. svg ---------- svg 璇█鐨勮В鏋?br />
13. wml----------- wml 璇█鐨勮В鏋?br />
14. xml------------xml 璇█鐨勮В鏋愪互鍙奨SLT 杞崲錛岄渶瑕乴ibxslt
杞歡搴旂敤
Browsers
-Safari
-Google Chrome/Chromium
-OmniWeb
-Osb-browser – Nokia
-Web Browser for S60 – Nokia
-QT Browser Engine
E-mail Clients錛氫嬌鐢╓ebkit 浣淲eb 鍐呭澶勭悊
-Entourage 2008 – Microsoft (for Mac)
-Mail-Apple
-Mailplane 鐗瑰畾鐨凣mail緇堢
Instant Messenger/Chat Clients錛氫嬌鐢╓ebkit瀵規秷鎭繘琛屾覆鏌撳拰鏍峰紡鍖?br />
-iChat AV – Apple
-MSN Messenger – Microsoft (Mac)
-Yahoo! Messenger
RSS Readers錛氫嬌鐢╓ebkit鏉ュ鐞嗗拰鐜板疄鏂伴椈鎽樿錛屼互鍙奆eed榪炴帴鍒扮殑瀹屾暣鏂囨。
-MiNews
-NetNewsWire
-NewsFire
-PixelNews
Index
1. Introduction
2. Architecture
3. How to Work
4. Wake Locks
5. Wake Lock Example
6. Music Application
1.Introduction
Android supports its own Power Management (on top of the standard Linux Power Management) designed with the premise that the CPU shouldn't consume power if no applications or services require power. For more information regarding standard Linux power management, please see Linux Power Management Support at http://kernel.org.
Android requires that applications and services request CPU resources with "wake locks" through the Android application framework and native Linux libraries. If there are no active wake locks, Android will shut down the CPU.
2.Architecture
Framework Layer
/frameworks/base/core/java/android/os/PowerManager.java
/frameworks/base/services/java/com/android/server/PowerManagerService.java
/frameworks/base/core/java/android/os/Power.java
/frameworks/base/core/jni/android_os_power.cpp
/hardware/libhardware_legacy/power/power.c
"/sys/power/wake_lock"
"/sys/power/wake_unlock"
"/sys/power/state"
"/sys/android_power/acquire_partial_wake_lock"
"/sys/android_power/release_wake_lock"
"/sys/android_power/request_state"
… …
Kernel Layer
/drivers/android/power.c
/drivers/power/apm_power.c (Advanced Power Management)
3.How to Work
緋葷粺姝e父寮鏈哄悗榪涘叆鍒癆WAKE鐘舵侊紝Backlight浼氫粠鏈浜參鎱㈣皟鑺傚埌鐢ㄦ埛璁懼畾鐨勪寒搴?緋葷粺screen off timer(settings->sound & display-> Display settings -> Screen timeout)寮濮嬭鏃?鍦ㄨ鏃舵椂闂村埌涔嬪墠錛屽鏋滄湁浠諱綍鐨刟ctivity浜嬩歡鍙戠敓,濡俆ouch click, keyboard pressed絳変簨浠訛紝鍒欏皢Reset screen off timer, 緋葷粺淇濇寔鍦ˋWAKE鐘舵併傚鏋滄湁搴旂敤紼嬪簭鍦ㄨ繖孌墊椂闂村唴鐢寵浜咶ull wake lock,閭d箞緋葷粺涔熷皢淇濇寔鍦ˋWAKE鐘舵侊紝闄ら潪鐢ㄦ埛鎸変笅power key. 鍦ˋWAKE鐘舵佷笅濡傛灉鐢墊睜鐢甸噺浣庢垨鑰呮槸鐢ˋC渚涚數screen off timer鏃墮棿鍒板茍涓旈変腑Keep screen on while pluged in閫夐」,backlight浼氳寮哄埗璋冭妭鍒癉IM鐨勭姸鎬併?br /> 濡傛灉Screen off timer鏃墮棿鍒板茍涓旀病鏈塅ull wake lock鎴栬呯敤鎴鋒寜浜唒ower key錛岄偅涔堢郴緇熺姸鎬佸皢琚垏鎹㈠埌NOTIFICATION錛屽茍涓旇皟鐢ㄦ墍鏈夊凡緇忔敞鍐岀殑g_early_suspend_handlers鍑芥暟錛岄氬父浼氭妸LCD鍜孊acklight椹卞姩娉ㄥ唽鎴恊arly suspend綾誨瀷錛屽鏈夐渶瑕佷篃鍙互鎶婂埆鐨勯┍鍔ㄦ敞鍐屾垚early suspend錛岃繖鏍峰氨浼氬湪絎竴闃舵琚叧闂? 鎺ヤ笅鏉ョ郴緇熶細鍒ゆ柇鏄惁鏈塸artial wake lock acquired錛屽鏋滄湁鍒欑瓑寰呭叾閲婃斁錛屽湪絳夊緟鐨勮繃紼嬩腑濡傛灉鏈塽ser activity浜嬩歡鍙戠敓錛岀郴緇熷垯椹笂鍥炲埌AWAKE鐘舵?濡傛灉娌℃湁partial wake lock acquired錛屽垯緋葷粺浼氶┈涓婅皟鐢ㄥ嚱鏁皃m_suspend鍏抽棴鍏跺畠鐩稿叧鐨勯┍鍔紝璁〤PU榪涘叆浼戠湢鐘舵併?br /> 緋葷粺鍦⊿leep鐘舵佹椂濡傛灉媯嫻嬪埌浠諱綍涓涓猈akeup source錛屽垯CPU浼氫粠Sleep鐘舵佽鍞ら啋,騫朵笖璋冪敤鐩稿叧鐨勯┍鍔ㄧ殑resume鍑芥暟錛屾帴涓嬫潵椹笂璋冪敤鍓嶆湡娉ㄥ唽鐨別arly suspend椹卞姩鐨剅esume鍑芥暟錛屾渶鍚庣郴緇熺姸鎬佸洖鍒癆WAKE鐘舵?
Registering Kernel-level Drivers with the PM Driver
#Be notified immediately before power down
android_register_early_suspend(android_early_suspend_t *handler)
#Be notified immediately after power up
android_register_early_resume(android_early_resume_t *handler)
HARDWARE LIGHTS
#define LIGHT_ID_BACKLIGHT "backlight"
#define LIGHT_ID_KEYBOARD "keyboard"
#define LIGHT_ID_BUTTONS "buttons"
#define LIGHT_ID_BATTERY "battery"
#define LIGHT_ID_NOTIFICATIONS "notifications"
#define LIGHT_ID_ATTENTION "attention"
#define LIGHT_ID_BLUETOOTH "bluetooth"
#define LIGHT_ID_WIFI "wifi"
4.Wake Locks
Wake locks are used by applications and services to request CPU resources.
Types of Wake Locks:
-ACQUIRE_CAUSES_WAKEUP: Normally wake locks don't actually wake the device, they just cause it to remain on once it's already on.
-FULL_WAKE_LOCK: The screen and keyboard are on at full brightness
-ON_AFTER_RELEASE: When this wake lock is released, poke the user activity timer
-PARTIAL_WAKE_LOCK: The CPU is running, The screen might not be on.
-SCREEN_BRIGHT_WAKE_LOCK: The screen is on at full brightness; the keyboard backlight will be allowed to go off.
-SCREEN_DIM_WAKE_LOCK: The screen is on, but the keyboard backlight will be allowed to go off, and the screen backlight will be allowed to go dim.
5.Wake Lock Example
1). Acquire handle to the PowerManager service.
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
2). Create a wake lock and specify the power management flags for screen, timeout, etc.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, TAG);
3). Acquire wake lock.
wl.acquire();
4). Perform operation (play MP3, open HTML page, etc.).
5). Release wake lock.
wl.release();
6.Music Application
/packages/apps/Music/AndroidManifest.xml
<uses-permission android:name="android.permission.WAKE_LOCK" />
/packages/apps/Music/src/.../MediaPlayerService.java PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
WakeLock mWakeLock =
pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
this.getClass().getName());
#Sets this WakeLock is not ref counted.
mWakeLock.setReferenceCounted(false);
…
#The lock will be released after 30 seconds.
mWakeLock.acquire(30000);
…
mHandler.sendEmptyMessage(RELEASE_WAKELOCK);
#Release the claim to the CPU or screen being on.
mWakeLock.release();
Reference
Android Platform Development Kit:Power Management
http://www.netmite.com/android/mydroid/development/pdk/docs/power_management.html
Android Power Management(Steve Guo)
http://letsgoustc.spaces.live.com/blog/cns!89AD27DFB5E249BA!526.entry
Android 鐢墊簮綆$悊(hzdysymbol)
http://blog.csdn.net/hzdysymbol/archive/2009/03/19/4004791.aspx
Linux Power Management Support
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.24.y.git;a=blob;f=Documentation/pm.txt
瀹夎紼嬪簭錛氳蔣浠朵粠鏃犲埌鏈夈?/span>
鍗歌澆紼嬪簭錛氳蔣浠朵粠鏈夊埌鏃犮?/span>
鏇存柊紼嬪簭錛氳蔣浠剁殑瑕嗙洊瀹夎錛屽彲浠ヤ繚鐣欏師鐗堟湰鐨勬暟鎹紝鎻愬崌杞歡鐗堟湰銆?/span>
瀹夎紼嬪簭鐨勬柟娉曪細
1銆?span style="font:7.0pt "Times New Roman"">
閫氳繃Intent鏈哄埗錛岃皟鍑虹郴緇熷畨瑁呭簲鐢紝閲嶆柊瀹夎搴旂敤鐨勮瘽錛屼細淇濈暀鍘熷簲鐢ㄧ殑鏁版嵁銆?/span>String fileName = Environment.getExternalStorageDirectory() + apkName;
Uri uri = Uri.fromFile(new File(fileName));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri, application/vnd.android.package-archive");
startActivity(intent);
2銆?span style="font:7.0pt "Times New Roman"">
鐩存帴璋冪敤瀹夎鎺ュ彛銆?/span>Uri mPackageURI = Uri.fromFile(new File(Environment.getExternalStorageDirectory()
+ apkName));
int installFlags = 0;
PackageManager pm =
getPackageManager();
try
{
PackageInfo pi = pm.getPackageInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
if(pi != null)
{
installFlags |= PackageManager.REPLACE_EXISTING_PACKAGE;
}
}
catch (NameNotFoundException e)
{}
PackageInstallObserver observer
= new PackageInstallObserver();
pm.installPackage(mPackageURI, observer, installFlags);
瀹夎搴旂敤鏉冮檺錛?/span>android.permission.INSTALL_PACKAGES
緋葷粺搴旂敤錛堝畨瑁呭湪/system/app涓嬮潰錛夊彲浠ラ噰鐢ㄨ鏂瑰紡錛岀涓夋柟搴旂敤鏃犳硶鐢寵瀹夎鍗歌澆鏉冮檺銆?/span>
java.lang.SecurityException: Neither user 10039 nor current process has android.permission.INSTALL_PACKAGES.
3銆?span style="font:7.0pt "Times New Roman"">
鎵цinstall鍛戒護銆?/span>install –r 鏇存柊瀹夎錛岄粯璁ゆ柊瀹夎錛涘鏋滀笉闄勪笂-r鍙傛暟錛屽垯浼氭竻妤氬師搴旂敤鐨勬暟鎹紝鐗堟湰涓鑷村垯鏃犳硶瀹夎銆?/span>
錛?/span>1錛?/span>am start …
錛?/span>2錛?/span>Runtime.exec(String[] args)
錛?/span>3錛?/span>Class<?> execClass = Class.forName("android.os.Exec");
4銆?span style="font:7.0pt "Times New Roman"">
鎵цcp / adb push鍛戒護銆?/span>鐢辯郴緇熸嫻嬪埌搴旂敤紼嬪簭鏈夋洿鏂幫紝鑷姩瀹屾垚閲嶆柊瀹夎銆?/span>
5銆?span style="font:7.0pt "Times New Roman"">
閫氳繃絎笁鏂硅蔣浠跺疄鐜般?/span>Market錛?/span>EOE錛?/span>eTrackDog鍧囬噰鐢ㄧ涓縐嶆柟娉曞疄鐜版洿鏂般?/span>
浼樼偣錛氱敱緋葷粺鏍稿績搴旂敤紼嬪簭鎺у埗瀹夎紼嬪簭錛?/span>
緙虹偣錛氭棤娉曟帶鍒跺畨瑁呰繃紼嬶紱瀹夎瀹屾垚鍚庯紝涔熸棤娉曠珛鍒誨惎鍔ㄥ簲鐢紝闇瑕佺敤鎴風‘璁わ紱鏃犳硶鎵╁睍銆?/span>
瀹炰緥錛?/span>Market鏌ユ壘瀹夎紼嬪簭
Intent intent =
new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:your.app.id"));
startActivity(intent);
鍗歌澆紼嬪簭鐨勬柟娉曪細
1銆?span style="font:7.0pt "Times New Roman"">
閫氳繃Intent鏈哄埗錛岃皟鍑虹郴緇熷嵏杞藉簲鐢ㄣ?/span>Uri packageURI = Uri.parse("package: your.app.id");
Intent intent = new Intent(Intent.ACTION_DELETE);
startActivity(intent);
2銆?span style="font:7.0pt "Times New Roman"">
鐩存帴璋冪敤鍗歌澆鎺ュ彛銆?/span>PackageInstallObserver observer
= new PackageInstallObserver();
pm.installPackage(mPackageURI, observer, installFlags);
鍗歌澆搴旂敤鏉冮檺錛?/span>android.permission.DELETE_PACKAGES
3銆?span style="font:7.0pt "Times New Roman"">
榪愯rm apk瀹夎鏂囦歡錛岀敱緋葷粺媯嫻嬪悗璋冪敤鍗歌澆搴旂敤銆?/span>澶囨敞璇存槑錛?/span>
Android緋葷粺鐨勫簲鐢ㄥ畨瑁咃紝鍦ㄧ郴緇熻緗噷闈㈡湁涓欏癸紝鏄惁瀹夎鏈煡婧愶紝鎵鍦ㄥ湪杞歡鏇存柊鐨勬椂鍊欙紝闇瑕佹嫻嬭繖涓夐」錛屽鏋滄墦閽╋紝鍒欏彧鍏佽瀹夎Market婧愭彁渚涚殑瀹夎紼嬪簭錛屽鏋滄病鏈夋墦閽╃殑璇濓紝緋葷粺瀹夎搴旂敤鏃朵細鎻愮ず鐢ㄦ埛璁劇疆錛屽鏋滈夋嫨璁劇疆錛岃緗ソ鍚庯紝鏃犳硶榪斿洖瀹夎鐣岄潰錛涘鏋滈夋嫨鍙栨秷錛屽垯鎺ㄥ嚭瀹夎紼嬪簭銆傛墍浠ワ紝濡傛灉鏄洿鏂扮殑璇濓紝涓瀹氳鍦ㄤ笅杞戒箣鍓嶅氨媯嫻嬭鍙畨瑁呮簮鐨勮緗紝鎴栬呭湪涓嬭澆鍓嶆嫻嬫槸鍚﹀凡緇忎笅杞借繃鏂扮殑瀹夎紼嬪簭錛岄伩鍏嶉噸澶嶄笅杞藉畨瑁呯▼搴忋?/span>
鐩稿叧鐨勪唬鐮佸涓嬶細
1.
int result = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0);
2.
if (result == 0) {
3.
// show some dialog here
4.
// ...
5.
// and may be show application settings dialog manually
6.
Intent intent = new Intent();
7.
intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);
8.
startActivity(intent);
9.
}
public static final class Settings.Secure extends Settings.NameValueTable
public static final String INSTALL_NON_MARKET_APPS
Since: API Level 3
Whether the package installer should allow installation of apps downloaded from sources other than the Android Market (vending machine). 1 = allow installing from other sources 0 = only allow installing from the Android Market銆?/span>
涓嬮潰鏄▼搴忔洿鏂扮殑鍑犱釜姝ラ婕旂ず錛?/span>
OVER!
璋冭瘯姝ラ濡備笅錛?br />
1/ 灝嗗紓甯哥殑鍦板潃淇℃伅瀛樺埌鏂囨湰鏂囦歡錛屽茍瀛樻斁鍦ㄩ」鐩牴鐩綍錛?br />
2/ 浣跨敤panic.py瑙f瀽璇ユ枃浠訛紱
3/ 鏍規嵁榪斿洖鐨勪俊鎭?鏂囦歡鍚?琛屽彿;鏂規硶鍚?璋冭瘯紼嬪簭銆?br />
浠ユ搷浣滅涓夋柟鐨凾ouch input 杈撳叆娉曚負渚嬶紝榪囩▼濡備笅錛?br />
# 璇ヨ緭鍏ユ硶鐨勮嫳鏂囧拰鎵嬪啓OK錛屾搷浣滀腑鏂囪緭鍏ユ硶鏃訛紝鍑虹幇寮傚父錛岃蔣閿洏娑堝け錛屽紓甯告棩蹇楀涓?br />
02-05 06:41:19.834 D/dalvikvm( 751): Trying to load lib /system/lib/libimezi.so 0x43e2a788
02-05 06:41:19.874 D/dalvikvm( 751): Added shared lib /system/lib/libimezi.so 0x43e2a788
02-05 06:41:20.035 I/DEBUG ( 551): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-05 06:41:20.035 I/DEBUG ( 551): Build fingerprint: 'unknown'
02-05 06:41:20.035 I/DEBUG ( 551): pid: 751, tid: 751 >>> com.htc.android.cime <<<
02-05 06:41:20.045 I/DEBUG ( 551): signal 11 (SIGSEGV), fault addr 00000003
02-05 06:41:20.045 I/DEBUG ( 551): r0 00000000 r1 00000000 r2 807248ec r3 807248ec
02-05 06:41:20.055 I/DEBUG ( 551): r4 00252d80 r5 00000004 r6 00000001 r7 00000000
02-05 06:41:20.055 I/DEBUG ( 551): r8 beff8550 r9 41459d28 10 41459d18 fp 00000000
02-05 06:41:20.055 I/DEBUG ( 551): ip 8072430c sp beff84f0 lr 80716b4f pc 80717bce cpsr 60000030
02-05 06:41:20.135 I/DEBUG ( 551): #00 pc 00017bce /system/lib/libimezi.so
02-05 06:41:20.135 I/DEBUG ( 551): #01 pc 00010f80 /system/lib/libimezi.so
02-05 06:41:20.145 I/DEBUG ( 551): stack:
02-05 06:41:20.155 I/DEBUG ( 551): beff84b0 ad083e10
02-05 06:41:20.155 I/DEBUG ( 551): beff84b4 ad05d44f /system/lib/libdvm.so
02-05 06:41:20.155 I/DEBUG ( 551): beff84b8 ad06b8a0 /system/lib/libdvm.so
02-05 06:41:20.155 I/DEBUG ( 551): beff84bc ad083e10
02-05 06:41:20.167 I/DEBUG ( 551): beff84c0 43e2aa90
02-05 06:41:20.175 I/DEBUG ( 551): beff84c4 00000003
02-05 06:41:20.175 I/DEBUG ( 551): beff84c8 00000014
02-05 06:41:20.185 I/DEBUG ( 551): beff84cc 80716b4f /system/lib/libimezi.so
# 淇濆瓨寮傚父鏃ュ織錛屽瓨涓烘枃浠? 20100205_ime.txt
02-05 06:41:20.045 I/DEBUG ( 551): r0 00000000 r1 00000000 r2 807248ec r3 807248ec
02-05 06:41:20.055 I/DEBUG ( 551): r4 00252d80 r5 00000004 r6 00000001 r7 00000000
02-05 06:41:20.055 I/DEBUG ( 551): r8 beff8550 r9 41459d28 10 41459d18 fp 00000000
02-05 06:41:20.055 I/DEBUG ( 551): ip 8072430c sp beff84f0 lr 80716b4f pc 80717bce cpsr 60000030
02-05 06:41:20.135 I/DEBUG ( 551): #00 pc 00017bce /system/lib/libimezi.so
02-05 06:41:20.135 I/DEBUG ( 551): #01 pc 00010f80 /system/lib/libimezi.so
# 鎵ц鑴氭湰
xujianxiang@wingdroid-clone:~/workspace/xujx/wing15$ ./panic.py 20100205_ime.txt
read file ok
/home/xujianxiang/workspace/xujx/wing15/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-addr2line: '/home/xujianxiang/workspace/xujx/wing15/out/target/product/generic/symbols/system/lib/libimezi.so': No such file
Traceback (most recent call last):
File "./panic.py", line 69, in <module>
print "%-30s%s" % (list[1],list[0])
IndexError: list index out of range
# 娌℃壘鍒板簱鏂囦歡錛屽洜涓鴻繖涓枃浠舵槸絎笁鏂圭殑錛屽彧瀛樻斁鍦?out/target/product/generic/system/lib /libimezi.so錛屾嫹璐濅竴浠藉瓨鍒?out/target/product/generic/symbols/system/lib /libimezi.so錛屽啀嬈℃墽琛岃剼鏈?br />
xujianxiang@wingdroid-clone:~/workspace/xujx/wing15$ ./panic.py 20100205_ime.txt
read file ok
zi81keyd.c:0 Zi8GetTableData
zi81keyd.c:0 Zi8InitializeDynamic
# 鎴愬姛瑙f瀽寮傚父錛屾病鏈墇i8搴撴枃浠舵墍鑷達紝鏇存柊濡備笅搴撴枃浠訛紝杈撳叆娉曟敮鎸佷腑鏂囨嫾闊熾?br />
/system/lib/zi/Zi8DatPYP_CN.z8d
/system/lib/zi/Zi8DatPYS_CN.z8d
/system/lib/zi/Zi8DatZHA_CN.z8d
/system/lib/zi/Zi8DatZHA_HK.z8d
/system/lib/zi/Zi8DatZHA_TW.z8d
/system/lib/zi/Zi8DatZYP_TW.z8d
/system/lib/zi/Zi8DatZYS_TW.z8d
Apk鏂囦歡錛?/p>
Android application package鏂囦歡銆傛瘡涓瀹夎鍒癘Phone騫沖彴鐨勫簲鐢ㄩ兘瑕佽緙栬瘧鎵撳寘涓轟竴涓崟鐙殑鏂囦歡錛屽悗緙鍚嶄負.apk錛屽叾涓寘鍚簡搴旂敤鐨勪簩榪涘埗浠g爜銆佽祫婧愩侀厤緗枃浠剁瓑銆?/p>
apk鏂囦歡瀹為檯鏄竴涓獄ip鍘嬬緝鍖咃紝鍙互閫氳繃瑙e帇緙╁伐鍏瘋В寮銆傚彲浠ョ敤zip瑙e紑*.apk鏂囦歡錛屼笅闈㈡槸涓涓猦elloword鐨刟pk紺轟緥鏂囦歡
|– AndroidManifest.xml
|– META-INF
| |– CERT.RSA
| |– CERT.SF
| `– MANIFEST.MF
|– classes.dex
|– res
| |– drawable
| | `– icon.png
| `– layout
| `– main.xml
`– resources.arsc
Android妯℃嫙鍣ㄤ腑鎻愪緵浜嗕竴涓猟ex鏂囦歡鐨勫弽緙栬瘧宸ュ叿錛宒exdump銆傜敤娉曚負棣栧厛鍚姩Android妯℃嫙鍣紝鎶婅鏌ョ湅鐨刣ex鏂囦歡鐢╝db push涓婁紶鐨勬ā鎷熷櫒涓紝鐒跺悗閫氳繃adb shell鐧誨綍錛屾壘鍒拌鏌ョ湅鐨刣ex鏂囦歡錛屾墽琛宒exdump xxx.dex銆?/p>
鐩墠鍦ㄧ綉涓婅兘鎵懼埌鐨勫彟涓涓猟ex鏂囦歡鐨勫弽緙栬瘧宸ュ叿鏄疍edexer銆侱edexer鍙互璇誨彇dex鏍煎紡鐨勬枃浠訛紝鐢熸垚涓縐嶇被浼間簬姹囩紪璇█鐨勮緭鍑恒傝繖縐嶈緭鍑轟笌jasmin[ ]鐨勮緭鍑虹浉浼鹼紝浣嗗寘鍚殑鏄疍alvik鐨勫瓧鑺傜爜銆?/p>
鏂規1錛氶氳繃16榪涘埗緙栫爜杞歡鑷鏇挎崲鑻辨枃 鏂規2錛氶氳繃姹夊寲寮鍙戜漢鍛樿嚜琛岀紪鍐欑殑姹夊寲杞歡For Android
2.4 resources.arsc璧勬簮鏂囦歡錛氬弬鑰冩眽鍖栭儴鍒?br />
3/ android 杞歡姹夊寲
1.JDK(Java Development Kit) -寮鍙戠幆澧?br />
2.Auto-Sign -絳懼悕宸ュ叿
3.Hex Workshop -鍗佸叚榪涘埗緙栬緫鍣?br />
4.WinRAR -鍘嬬緝杞歡
鍥炬枃騫惰寕紺轟緥錛?a >http://bbs.blueshow.net/thread-604533-1-1.html
1.JDK(Java Development Kit) -寮鍙戠幆澧?br />
2.Android ResEdit-姹夊寲杞歡
3.WinRAR -鍘嬬緝杞歡
鍥炬枃騫惰寕紺轟緥錛?a >http://mobile.yesky.com/363/9292863.shtml
娉ㄦ剰錛?/p>
鎴戠敤鐨凥TC鐨刬mage鎻愬彇鐨刧oogle maps 3.0鐨刯ar搴撳拰apk瀹夎鏂囦歡錛屽彧鍙互瀹氫綅鎴愬姛錛屾棤娉曡鍙栧畾浣嶅悗鐨勫湴鍥炬暟鎹紝鎶涘嚭ClassCastException寮傚父錛?/p>
03-01 16:52:58.561 E/AndroidRuntime( 2453): Uncaught handler: thread main exiting due to uncaught exception
03-01 16:52:58.936 E/AndroidRuntime( 2453): java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable
03-01 16:52:58.936 E/AndroidRuntime( 2453): at com.google.android.maps.MyLocationOverlay.getLocationDot(MyLocationOverlay.java:180)
鏈鍚庯紝鎴戞槸鎻愬彇鐨剅elease鐗堢殑Android 1.5鐗堟湰鐨勭浉鍏蟲枃浠?Google Add-ons)錛屾柟娉曞涓嬶細
1)/system/etc/permissions/com.google.android.gtalkservice.xml
2)/system/etc/permissions/com.google.android.maps.xml
3)/system/framework/com.google.android.gtalkservice.jar
4)/system/framework/om.google.android.maps.jar
5)/system/app/Maps.apk (Google Maps v3.1)
Google Mobile
http://www.google.com/mobile/
HTC Developer Center
http://developer.htc.com/index.html
Building Android 1.5 – Google Apps and audio files
http://www.johandekoning.nl/index.php/2009/07/12/building-android-1-5-google-apps-and-audio-files/
Google Voice Search Wiki
http://en.wikipedia.org/wiki/Google_Voice_Search
Using Google Maps in Android
http://mobiforge.com/developing/story/using-google-maps-android
Android Add-ons(Map API)
http://android.nanshapo.com/topic/view/812.html
鏌愪簺鎵嬫満鍘傚晢鐨凧2ME铏氭嫙鏈烘槸縐繪鐨凷UN鍏徃寮婧愭巿鏉冪殑PHONEME铏氭嫙鏈?https://phoneme.dev.java.net/)錛涘崡浜煇鍏徃(CM)涔熷紑鍙戜簡J2ME铏氭嫙鏈猴紝鍏蜂綋鎯呭喌涓嶈銆?/p>
phoneME Feature software is an open source development effort
addressing the market and technical requirements of “feature phone”
devices. The majority (about 80%) of mobile phones in the world today
are feature phones. Devices of this type typically include a
high-resolution screen, multiple forms of messaging (SMS, MMS, IM,
Email), basic 2D and 3D gaming, a camera, music player, Internet
browser, etc.
Powering all this functionality is a core set of Java ME technologies known
as CLDC (the Java VM) and MIDP (the mobile information device profile).
CLDC and MIDP are the most widely adopted Java ME application platforms
used in mobile phones today. Layered on this base is a set of additional
Java ME technologies often called “optional packages” that come
in the form of JSRs (Java Specification Requests).
The
phoneME Feature software includes the latest milestone and
in-development implementations of CLDC and MIDP as well as
implementations for a number of optional package JSRs. more...
涓嬮潰鏄笁綃囩浉鍏崇殑鏂囨。璧勬枡錛?/p>
http://blog.csdn.net/lzf_china/archive/2009/10/16/4676111.aspx
鎬濊礬鏃犻潪3縐嶏細
1, 鎻愪緵涓涓猘ndroid涓嬬殑j2me铏氭嫙鏈猴紝璁﹋2me紼嬪簭榪愯 濡侽Phone涓嬬殑鐧懼疂綆?br />
2, 鎻愪緵涓涓漿鎹㈠伐鍏鳳紝灝唈2me鐨刯ar鏀懼叆apk涓紝閲嶆柊鐢╝pt鍒朵綔鎴恆pk瀹夎紼嬪簭錛屽茍鍏佽錛屽netmite
3, 鎻愪緵綾誨簱涓棿灞傦紝灝哸ndroid涓病鏈夌殑j2me綾誨簱鐢╝ndroid鐨勭▼搴忓疄鐜板嚭鏉ワ紝騫剁敤android sdk閲嶆柊緙栬瘧鎴恆pk 濡侸2AB
JavaME鏃犳硶婊¤凍Android,鍙湁璁捐Dalvik
http://blog.chinaunix.net/u2/85805/showart_1421638.html
Android涓轟粈涔堜笉浣跨敤Native C/C++錛?br /> Android涓轟粈涔堜笉浣跨敤Sun JavaME錛?/strong>
Dalvik鍜孞2ME鐩告瘮鍏堣繘鍒頒簡鍝噷錛?/strong>
http://blog.chinaunix.net/u2/85805/showart_1421644.html
鍒嗘瀽浜咲alvik鍜孞2ME鐨勫尯鍒傞鍏圖alvik铏氭嫙鏈烘槸Google鑷繁寮鍙戠殑 Java铏氭嫙鏈猴紝榪愯鍦ˋndroid騫沖彴涓娿侸2ME鏄疭un鍏徃鐨勭Щ鍔ㄥ鉤鍙癑ava VM銆?/p>
涓銆佽繍琛岀幆澧冨姣?br />
浜屻佹ā鎷熷櫒
涓夈佸吋瀹規?br />
鍥涖佽繍琛屾晥鐜?br />
浜斻佸畨鍏ㄦ?br />
鍏佺被搴撳畬鏁存?/span>