AOSP學(xué)習(xí)(三)Android系統(tǒng)資源定制

前言

有些時候我們需要對Android系統(tǒng)進行一些個性化的定制洗搂,如開機動畫、開機l畫面酬荞、內(nèi)置第三方App等,根據(jù)廠家的一些要求做相對應(yīng)的操作畅买,打造屬于自己的系統(tǒng)

一、修改開機動畫

開機動畫主要和bootanimation.zip 文件有關(guān)细睡,這個壓縮包里面包含數(shù)張png格式的圖片谷羞,還有一個desc.txt的文本文檔,Android系統(tǒng)在開機時按desc.txt里面的指令溜徙,屏幕上會按文件名稱順序連續(xù)的播放一張張的圖片湃缎,這里面的保存的圖片需要按照順序編號命名

desc.txt的內(nèi)容格式

# desc.txt文件命令

150 259 30
p 0 0 part0

150 259 30 是控制圖片的分辨率,以及圖片顯示的幀率
p 0 0 part0 是控制圖片以怎樣的規(guī)律播放

  • 第一位p代表播放的意思萌京;
  • 第二位0代表循環(huán)播放的意思(如果是1則代表只播放一次)雁歌;
  • 第三位默認為0即可宏浩,指播放間隔時間為0(在循環(huán)播放情況下知残,代表播放完一輪后,需間隔多少秒再重新播放)比庄;
  • 第四位part0則表示這行條命令是對part0目錄下的開機圖片有效求妹;

如果圖片準(zhǔn)備好了,desc.txt里面的命令準(zhǔn)備好了佳窑,就可以把他們一起打包壓縮成zip格式了制恍,在壓縮文件時使用的壓縮方式為存儲

替換資源路徑

packages/services/Car/car_product/build/car.mk

# 替換bootanimation-832.zip
# Boot animation
PRODUCT_COPY_FILES += \
    packages/services/Car/car_product/bootanimations/bootanimation-832.zip:system/media/bootanimation.zip

編譯

#單編
mmm packages/services/Car/car_product/

#全編
m -j4

二、修改開機畫面

Android系統(tǒng)默認的開機動畫是由兩張圖片android-logo-mask.png和android-logo-shine.png通過程序調(diào)用實現(xiàn)的動畫效果(明暗變化)神凑。
這兩張圖片保存在<android-source>/frameworks/base/core/res/assets/images中净神,主要在目錄:frameworks\base\cmds\bootanimation\BootAnimation.cpp中使用

//判斷是否有動畫資源
bool BootAnimation::threadLoop() {
    ...
    // animation.
    iif (mZipFileName.isEmpty()) {
        ALOGD("No animation file");
        result = android();
    } else {
       result = movie();
    }
        ...
        ...
    return result;
}

//用opengl繪制圖片,這邊也可以繪制倒車影像
bool BootAnimation::android() {
    glActiveTexture(GL_TEXTURE0);

    SLOGD("%sAnimationShownTiming start time: %" PRId64 "ms", mShuttingDown ? "Shutdown" : "Boot",
            elapsedRealtime());
    initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png");
    initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png");

    mCallbacks->init({});

    // clear screen
    glDisable(GL_DITHER);
    glDisable(GL_SCISSOR_TEST);
    glUseProgram(mImageShader);

    glClearColor(0,0,0,1);
    glClear(GL_COLOR_BUFFER_BIT);
    eglSwapBuffers(mDisplay, mSurface);

    // Blend state
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}

簡單替換的方法就是自定義png圖片溉委,替換 android-logo-mask.png文件鹃唯,并重新編譯:

//-B全新編譯
mmm -B frameworks/base/core/res/  
230941681395137_.pic.jpg

三、內(nèi)置第三方App

這里主要講述內(nèi)置已經(jīng)編譯好的APK文件瓣喊,講述不同的參數(shù)對內(nèi)置APP的影響坡慌。這里總共分為三個步驟。

(1)在packages/apps目錄下新建存放APK的文件夾

cd aosp/packages/apps
mkdir ZxxTest

(2)創(chuàng)建Android.mk文件藻三,編寫編譯配置洪橘,touch Android.mk然后編寫Android.mk文件:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#編譯模塊的名稱
LOCAL_MODULE := ZxxTest
#可以為user跪者、eng、tests熄求、optional渣玲,optional代表在任何版本下都編譯
LOCAL_MODULE_TAGS := optional
# 設(shè)置源文件。如果上面的LOCAL_MODULE對應(yīng)文件名弟晚,可使用$(LOCAL_MODULE).apk
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
# 生成的模塊類型
LOCAL_MODULE_CLASS := APPS
#module的后綴柜蜈,可不設(shè)置
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#不進行預(yù)先優(yōu)化,一般第三方應(yīng)用會避免優(yōu)化指巡,而導(dǎo)致APP各種異常
LOCAL_DEX_PREOPT := false 
#獲得apk中 armeabi-v7a 下所有的so
define get-all-libraries-module-name-in-subdirs
$(sort $(shell cd $(LOCAL_PATH) ; rm -rf lib >/dev/null ; unzip $(LOCAL_MODULE).apk 'lib/armeabi-v7a/*.so' -d . >/dev/null ; find -L $(1) -name "*.so"))
endef
ALL_LIBRARIES_MODULE_NAME := $(call get-all-libraries-module-name-in-subdirs, lib/armeabi-v7a)
LOCAL_PREBUILT_JNI_LIBS := $(ALL_LIBRARIES_MODULE_NAME)
LOCAL_PRIVILEGED_MODULE := true
#簽名淑履,platform表示系統(tǒng)簽名,PRESIGNED表示保持原簽名
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)

(3)在/build/make/target/product/handheld_product.mk文件加入對APK的編譯

# /product packages
PRODUCT_PACKAGES += \
    Browser2 \
    Calendar \
    Camera2 \
    Contacts \
    ....
    SettingsIntelligence \
    frameworks-base-overlays \
    ZxxTest

(4)編譯

cd aosp/
source build/envsetup.sh # 導(dǎo)入環(huán)境
lunch 72  # 選擇系統(tǒng)
m -j4  # 編譯
3581681400387_.pic.jpg

adb logcat 命令

adb logcat [選項] [過濾項], 其中 選項 和 過濾項 在 中括號 [] 中, 說明這是可選的;
選項解析:
1."-s"選項 : 只顯示指定標(biāo)簽的日志; ------>adb logcat -s SWVDEC 顯示SWVDEC標(biāo)簽的日志
2."-v"選項 : 設(shè)置日志的輸出格式;----->adb logcat -v threadtime 查看日志輸出時間和線程信息
3."-c"選項 : 清空所有的日志緩存信息;---->adb logcat -c
4."-d"選項 : 將緩存的日志輸出到屏幕上, 并且不會阻塞;------->adb logcat -d
5."-t"選項 : 輸出最近的幾行日志, 輸出完退出, 不阻塞;------>adb logcat -t 5 輸出日志緩沖區(qū)的最近5行
6."-g"選項 : 查看日志緩沖區(qū)信息; ------>adb logcat -g
7."-B"選項 : 以二進制形式輸出日志; ----> adb logcat -B

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末藻雪,一起剝皮案震驚了整個濱河市秘噪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勉耀,老刑警劉巖指煎,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異便斥,居然都是意外死亡至壤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門枢纠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來像街,“玉大人,你說我怎么就攤上這事晋渺×铮” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵木西,是天一觀的道長畴栖。 經(jīng)常有香客問我,道長八千,這世上最難降的妖魔是什么吗讶? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮恋捆,結(jié)果婚禮上照皆,老公的妹妹穿的比我還像新娘。我一直安慰自己鸠信,他們只是感情好纵寝,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般爽茴。 火紅的嫁衣襯著肌膚如雪葬凳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天室奏,我揣著相機與錄音火焰,去河邊找鬼。 笑死胧沫,一個胖子當(dāng)著我的面吹牛昌简,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绒怨,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼纯赎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了南蹂?” 一聲冷哼從身側(cè)響起犬金,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎六剥,沒想到半個月后晚顷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡疗疟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年该默,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片策彤。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡栓袖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锅锨,到底是詐尸還是另有隱情叽赊,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布必搞,位于F島的核電站,受9級特大地震影響囊咏,放射性物質(zhì)發(fā)生泄漏恕洲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一梅割、第九天 我趴在偏房一處隱蔽的房頂上張望霜第。 院中可真熱鬧,春花似錦户辞、人聲如沸泌类。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刃榨。三九已至弹砚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枢希,已是汗流浹背桌吃。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留苞轿,地道東北人茅诱。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像搬卒,于是被迫代替她去往敵國和親瑟俭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容