編輯:關於Android編程
今天好不容易有點時間,就寫的東西出來吧。感覺miui的recovery的第三方的編譯是最簡單的,這點比較喜歡,對於我們來說當然是越簡單越好了。OK,廢話不多說,進入主題:
1、先克隆miui的recovery源碼
在終端運行:git clone https://github.com/MiCode/miui_recovery.git //這是patchrom上面的,完整版
git clone https://github.com/miuicode/MIUI_Recovery.git //這是格諾精簡的rec,適合rec分區小的手機
以上兩種可以看大家自己的心情選擇了,個人喜歡格諾精簡的這個,只要是小,該有的還是有。
2、代碼下了之後進入rec目錄,首先看下docs文件夾的文檔吧,我覺得就應該養成這麼一個習慣,凡是先自己琢磨下,一般肯定都會帶幫助示例說明的。文檔裡面一來就有說明:整個工程需要拷貝 Android4.0 源碼中的 prebuilt, bionic,hardware 目錄到 recovery 的目錄,那我們就滿足它,從4.0的代碼拷到rec目錄(注意這裡必須是ICS的,不要圖方便搞其他的,要不然編譯有你受的)。其實它的文檔說的挺明白的,就是太多錯誤了。
3、原理性的東西我不講多少,我就只說怎麼搞肯定是可以編譯成功出結果的,大家理解下。首先:
cd patch_devices //進入devices
mkdir i6c //在裡面新建自己的機型rec目錄,然後把你機型官方的rec放裡面
unpackbooting -i recovery.img //解壓rec,unpackbooting工具在patchrom的tools裡面帶了,設置下環境或者全路徑訪問就行
解壓後在終端會打印一些屬性,把它復制下來,留著後面有用,我這邊的是:
BOARD_KERNEL_CMDLINE androidboot.hardware=qcom loglevel=1 vmalloc=200M
BOARD_KERNEL_BASE 00200000
BOARD_PAGE_SIZE 4096
mkdir new-ramdisk //新建一個文件夾,名字隨意吧,文檔是寫的這個,尊重下原作者吧
cd new-ramdisk //進入
gzip -dc ../recovery.img-ramdisk.gz | cpio -i //提取root文件系統
find -type l -exec rm -rf {} \; //找出鏈接文件並刪除
cd .. //回到上級一目錄
mv new-ramdisk root //將之前的new-disk改名為root
mv recovery.img-zImage kernel //將recovery.img-zImage改名為kernel
cp ../crespo/device.conf ./ //從crespo拷貝devices.conf模板
把剛剛拷貝devices.conf裡面的ini_set("rom_device", "Nexus S");改成自己的機型吧,不說他們都懂這裡的作用了。
cp ../crespo/Android.mk ./ //還是一樣拷目錄,熟悉android的人都知道這文件的作用了
把Android.mk打開修改成我們所需要的,我把下面的
MIUI_PRODUCT := crespo
MIUI_KERNEL := $(LOCAL_PATH)/kernel
MIUI_KERNEL_BASE := 0x30000000
MIUI_KERNEL_PAGESIZE := 4096 改成了
MIUI_PRODUCT := i6c //換成自己的機型名字
MIUI_KERNEL := $(LOCAL_PATH)/kernel
MIUI_KERNEL_BASE := 00200000 //還記得之前解壓讓大家復制出來的信息了不,在這裡就用上了
MIUI_KERNEL_PAGESIZE := 4096 //很巧這裡跟我們的一樣
最後回到rec源碼的根目錄:
先初始下環境:
. build/envsetup.sh
然後編譯你的rec
make i6c
等待編譯完成,然後在out/patch_devices你的機型目錄下就有recovery.img
到這裡,恭喜你,最基本的rec就編譯好了,可以拿下使用,一般都不會有問題,如果還有問題的話就直接去修改下源碼吧,一般都是什麼圖標錯誤、按鍵錯亂等等,這些放到其他文章來給大家分析下了。這次就到這...
簡介由於項目需要+有網友咨詢,所以做了個橫向滑頁+某一橫向滑頁中有豎向滑頁的demo,實現有點繞彎子,但基本功能還是比較完善,發上來共享一下。效果思路第一步的思路是自己判
ShaderShader是一個基類,表示在繪制期間顏色的水平跨度它的子類被嵌入在Paint中使用,調用paint.setShader(shader)。除Bit
今天的幾個目標: 1. 自定義ActionProvider 2. Toolbar ActionBar自定義Menu 3. Toolbar ActionBar 右側Menu
Service沒有UI,因為service是後台運行如:下載,網絡I/O 等等Service的生命周期從它被創建開始,到它被銷毀為止,onCrea