九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Android拓展系列(5)

本來想下載Android官方源代碼,沒想到android.git.kernel.org維護,不能訪問,非常遺憾,并因此還郁悶了幾天。 
后來轉(zhuǎn)投MIUI,沒找到它的源碼,不知道它的"超過40萬人社區(qū)開發(fā)團隊"是什么意思,求解具體開發(fā)人員幾何,都是誰?
后來一想,竟然忘記了CyanogenMod這茬,這可是的的確確的開源啊,我的手機一直也在用CyanogenMod系統(tǒng)的,感覺確實不錯。


1.準備
我得環(huán)境如下,
VirtualBox 4.1.2.r73507
Ubuntu11.10 Beta2(32位)
下載CyanogenMod的gingerbread分支
Ubuntu的環(huán)境配置大家可以參考我前面寫的《Android拓展系列(3)--Android源碼下載》,也可以參考http://source.android.com/
這里著重說下Android 2.3以上需要借助JAVA6,安裝Java6,我推薦如下安裝:



$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"$ sudo apt-get update$ sudo apt-get install sun-java6-jdk


其中第二句可能會出錯,不過沒關(guān)系,跳過即可。 


2.安裝repo
因為android.git官方已經(jīng)不能訪問,所以我這里提供一個repo文件的下載地址,免的大家到處搜索:http://115.com/file/cl15goo2#repo 
把repo拷貝到ubuntu根目錄下得bin下
操作方法:



$mkdir bin//下載的repo腳本拷貝本地bin文件夾下//設(shè)置本地repo的可執(zhí)行權(quán)限$chmod a+x ~/bin/repo$alias repo="~/bin/repo"http://這里我用特意用別名,大家也可以按常規(guī)方法把repo的路徑添加到PATH中


3.ubuntu中環(huán)境的配置
JDK前面已經(jīng)說了,其他的軟件列表如下:



$sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool  


這些軟件都安裝好之后我們開始下載CyanogenMod源碼。


4.下載CyanogenMod源碼



//從用戶根目錄下開始//創(chuàng)建CyanogenMod文件夾來放置后面所有的代碼$mkdir CyanogenMod//獲取gingerbread的分支源代碼$repo init -u git://github.com/CyanogenMod/android.git -b gingerbread  //同步服務(wù)器代碼到本地,-j16據(jù)網(wǎng)友反應(yīng)是多開網(wǎng)絡(luò)連接,從而能提高下載速度$repo sync -j16


這個過程非常的漫長,大家慢慢的等吧,本人是晚上睡覺的時候下載,第二天早上醒來就Done了。


5.編譯源碼
在CyanogenMod/device目錄下有很多款手機的對應(yīng)版本:



里面有個htc,本人是htc G9,也就是Liberty,我們點擊看看:



我的liberty靜靜的優(yōu)雅的舒服的躺在那里。
所以本人決定編譯一個我手頭上的liberty對應(yīng)的系統(tǒng)版本,編譯完成后我們直接刷機。
第一步:讀取手機上的一些私有配置文件



$cd CyanogenMod/device/htc/liberty$./extract-files.sh


圖示如下:



第二步:生成編譯腳本文件



$cd ~/CyanogenMod/vendor/cyanogen  $./get-rommanager$./extract-google-files//復(fù)制編譯腳本文件到CyanogenMod目錄下,后面編譯整個系統(tǒng)用的就是這個文件$cp ~/CyanogenMod/vendor/cyanogen/products/cyanogen_lieberty.mk  ~/CyanogenMod/buildspec.mk


貼上進行時圖片:



第三步:編譯腳本
回到CyanogenMod目錄下,執(zhí)行腳本。



//初始化腳本,這個是后面的重要基礎(chǔ)步驟$source build/envsetup.sh//選擇編譯的產(chǎn)品//這個命令需要一小會兒時間,但是又沒提示,耐性等待一下$lunch cyanogen_liberty-eng//開始編譯$make -j4 CYANOGEN_WITH_GOOGLE=true otapackage 


這個過程也是相當?shù)穆L,還好一般情況下我們只是第一次需要項目整個編譯,后面只需要編譯某個模塊。
可惜完成的時候我忘記截圖了,可惜不能上圖了。
在編譯的過程中,我們有一點要特別注意,虛擬機的內(nèi)存不要太小,本人剛開始分配虛擬機512M內(nèi)存,一會兒就出錯,重新編譯又一會兒出錯,如此重復(fù),而且還導(dǎo)致某個文件被破壞掉了(values-cs/strings.xml中某行少一個右尖括號,這個我百思不得其解),后來我把虛擬機內(nèi)存調(diào)到1024M就一直編譯通過了。


第四步:生產(chǎn)刷機zip包。



./vendor/cyanogen/tools/squisher


有圖為賞:



用這個zip包,我刷到我手機上,一切正常。


6.定制ROM
有了以上的環(huán)境后,我們就可以大展手腳,深度定制ROM, 做自己的操作系統(tǒng),自己的CyanogenMod,自己的MIUI,自己的Android系統(tǒng)。
舉個最簡單的例子:
我們換一下默認menu菜單的選中背景圖,我們進入CyanogenMod/frameworks/base/core/res/res/mdpi目錄下(因為htc liberty的分辨率是480x320),找到圖片highlight_pressed.png,替換為綠色的背景:



那么修改資源文件后,我們需要重新編譯framework-res.apk:



//回到根目錄$cd//切換到管理員權(quán)限$sudo -s//進入CyanogenMod目錄,并初始化腳本文件$cd CyanogenMod$source build/envsetup.h//選擇產(chǎn)品$lunch cyanogen_liberty-eng//進入資源編譯目錄(或者它的子目錄也可以)$cd frameworks/base/core/res//開始編譯framework-res.apk$mm


編譯完成,示意圖如下:



在CyanogenMod/out/target/product/liberty/system/framework目錄下生成了一個framework-res.apk文件,就是我們修改Menu選中項圖片后新打的資源包。
現(xiàn)在我們需要把這個資源包更新到手機中。
USB連上手機后,一切正常的話(adb當然也是事前要裝好的哦),打開終端:



//使其可寫$adb remount//替換手機中資源包$adb push ~/CyanogenMod/out/target/product/liberty/system/framework/framework-res.apk /system/framework///重啟手機后生效$adb reboot


重啟后,進入桌面,我們點擊Menu,選擇一項:



修改資源包,可以修改樣式,顯示圖片,調(diào)整布局等等。
你也可以直接修改framework代碼,在framework/base/core/java目錄下,修改對應(yīng)的類,比如邏輯處理,樣式重繪等等,然后同上面類似編譯,把生成的framework.jar替換掉手機的/system/framework下的framework.jar,重啟手機即可看到效果。
你也可以添加系統(tǒng)應(yīng)用,刪除系統(tǒng)應(yīng)用等等,這里特別提到一點,系統(tǒng)應(yīng)用可以通過如下命令刪除(具有root權(quán)限):



$adb remount$adb shell#cd system/app//用rm刪除系統(tǒng)FM應(yīng)用#rm FM.apk


有了這些基礎(chǔ)知識,我相信我們后面的深度定制ROM一定非常精彩!


7.小結(jié)
本文以CyanogenMod源碼編譯總結(jié)了Android改造系統(tǒng)的一個基本環(huán)境,是我們之后ROM系統(tǒng)定制,優(yōu)化的基礎(chǔ),是android深入學(xué)習(xí)的必會技能,特此分享,共勉! 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用Android Studio閱讀整個Android源碼
Eclipse 安裝Gradle插件
android移植簡述
把Android源代碼加入SDK
關(guān)于V8 JavaScript Engine的使用方法研究(三)
iOS 制作兼容64位iOS系統(tǒng)的Framework包
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服