了表面的從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問題可能會越少。
Python火的原因在于其優點很多。
優點如下:
1、面向對象廣
從根本上講,Python 是一種面向對象的語言。它的類模塊支持多態、操作符重載和多重繼承等高級概念,并且以Python 特有的簡潔的語法和類型,OOP 十分易于使用。事實上,即使你不懂這些術語,仍會發現學習Python 比學習其他OOP 語言要容易得多。
2、免費
Python 的使用和分發是完全免費的。就像其他的開源軟件一樣,例如,Tcl 、Perl 、Linux 和Apache 。你可以從Inter買粉絲 上免費獲得Python 系統的源代碼。復制Python ,將其嵌入你的系統或者隨產品一起發布都沒有任何限制。實際上,如果你愿意的話,甚至可以銷售它的源代碼。
但是"免費"并不代表" 無支持"。恰恰相反,Python 的在線社區對用戶需求的響應和商業軟件一樣快。而且,由于Python 完全開放源代碼,提高了開發者的實力,并產生了一個很大的專家團隊。盡管學習研究或改變一個程序語言的實現并不是對每一個人來說都那么有趣,但是當你知道還有源代碼作為最終的幫助和無盡的文檔資源是多么的令人欣慰。你不需要去依賴商業廠商。
3、可移植
Python 的標準實現是由可移植的ANSI C 編寫的,可以在目前所有的主流平臺上編譯和運行。例如,如今從PDA 到超級計算機,到處可以見到Python 在運行。Python 可以在下列平臺上運行:
Linux 和UNIX 系統
微軟Windows 和DOS (所有版本)
Mac OS (包括OS X 和Classic )
BeOS 、OS/2 、VMS 和QNX
實時操作系統,例如,VxWorks 。 Cray 超級計算機和IBM 大型機。 運行Palm OS 、PocketPC 和Linux 的PDA
運行Windows Mobile 和Symbian OS 的移動電話。
4、功能強大
從特性的觀點來看,Python 是一個混合體。它豐富的工具集使它介于傳統的腳本語言(例如,Tcl 、Scheme 和Perl )和系統語言(例如,C、C++ 和Java) 之間。Python 提供了所有腳本語言的簡單和易用性,并且具有在編譯語言中才能找到的高級軟件工程工具。不像其他腳本語言,這種結合使Python 在長期大型的開發項目中十分有用。
5、可混合
Python 程序可以以多種方式輕易地與其他語言編寫的組件"粘接"在一起。例如,Python 的C語言API 可以幫助Python 程序靈活地調用C程序。這意味著可以根據需要給Python 程序添加功能,或者在其他環境系統中使用Python 。
例如,將Python 與C或者C++ 寫成的庫文件混合起來,使Python 成為一個前端語言和定制工具。就像之前我們所提到過的那樣,這使Python 成為一個很好的快速原型工具;首先出于開發速度的考慮,系統可以先使用Python 實現,之后轉移至C,根據不同時期性能的需要逐步實現系統。
6、使用簡單
運行Python 程序,只需要簡單地鍵入Python 程序并運行就可以了。不需要其他語言(例如,C或C++ )所必須的編譯和鏈接等中間步驟。Python 可立即執行程序,這形成了一種交互式編程體驗和不同情況下快速調整的能力,往往在修改代碼后能立即看到程序改變后的效果。
Python 提供了簡潔的語法和強大的內置工具。實際上,Python 曾有種說法叫做"可執行的偽代碼"。由于它減少了其他工具常見的復雜性,當實現相同的功能時,用Python 程序比采用C、C++ 和Java 編寫的程序更為簡單、小巧,也更靈活。
為什么要學Python?
對于技術人員來說,這算是技術儲備,就算現在用不到它,還是要拿來玩一玩,了解它的特性。
對于一個程序員來說,開拓視野很重要,多嘗試幾門語言沒有任何壞處。學習其他的語言有助于你跳出自己之前的局限來看問題。語言限制了你的表達,也限制了你思考問題的方式。多了解一些不同的編程范式,有助于你加深對編程語言的了解。沒有什么壞處。只是蜷縮在自己熟悉的東西里永遠無法提高。
當然對于大部分人來說,比如大學生在學校里學都是為了過這門課,或者跟風趕時髦。我覺得真正感興趣的人是少數吧。
2024-07-09 11:18
2024-07-09 11:12
2024-07-09 10:31
2024-07-09 09:59
2024-07-09 09:56
2024-07-09 09:52