欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂Andorid培訓之實現(xiàn)多種開機動畫和logo切換功能

2018-12-12 13:50:08 2110瀏覽

今天扣丁學堂Android培訓老師給大家分享一下關于Andorid系統(tǒng)實現(xiàn)多種開機動畫和logo切換功能的詳細介紹,目前android開機畫面由三個部分(階段)組成,第一部分在bootloader啟動時顯示(靜態(tài)),第二部分在啟動kernel時顯示(靜態(tài)),第三部分在系統(tǒng)啟動時(bootanimation)顯示(動畫)。



添加資源

1.在device/tangxun/tx6580_weg_m/ProjectConfig.mk,找到BOOT_LOGO=這項,記住這項內(nèi)容(如hd720,),在vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/目錄下找到BOOT_LOGO=對應的文件夾把你的圖片放進去,圖片我是這樣命名的hd720_kernel_i7.bmp.(如果你只是替換的話更換hd720_kernel.bmp和hd720_uboot.bmp這兩張圖片即可,新圖片的名字需與舊圖片一致)

2.在vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/rules.mk下修改RESOURCE_OBJ_LIST列表,如圖:



3.同目錄下update文件中添加


添加標識區(qū)分不同logo

思路:首先我們添加的標識,不能被輕易清除,包括恢復出廠設置情況下。所以我選擇在protect_f分區(qū)下創(chuàng)建空文件的方式,在showlogo的時候判斷相應文件是否存在,來展示不同的logo和動畫。

1.選擇一種要展示的logo和動畫,在protect_f分區(qū)下創(chuàng)建.dat后綴的文件,刪除其他類型動畫在protect_f分區(qū)下的相應文件

private void createOrDeleteFile(String str){
  String sDir = "/protect_f";
  File fDir = new File(sDir);
  if (fDir.exists()){
   try {
    Runtime.getRuntime().exec("chmod 777"+sDir);
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 
  File mFile = new File(sDir,File_moto_logo);
  if (mFile.exists()){
   mFile.delete();
  }
 
  mFile = new File(sDir,File_samsun_logo);
  if (mFile.exists()){
   mFile.delete();
  }
 mFile = new File(sDir,"sysBoot_logo_null.dat");
  if (mFile.exists()){
   mFile.delete();
  }
 
  if (str != null){
   mFile = new File(sDir,str);
   if (!mFile.exists()){
    try {
     mFile.createNewFile();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }

2.在vendor/mediatek/proprietary/external/libshowlogo/charging_animation.cpp文件中,添加logo切換

const char LOGO_ON5_ANI[] = "/protect_f/sysBoot_logo_moto.dat";
const char LOGO_I7_ANI[] = "/protect_f/sysBoot_logo_samsun.dat";
/*
 * Show kernel logo when phone boot up
 *
 */
void show_kernel_logo(){  //這是系統(tǒng)本來就有的
 SLOGD("[libshowlogo: %s %d]show kernel logo, index = 38 \n",__FUNCTION__,__LINE__);
 if (error_flag == 0) {
  if(open(LOGO_ON5_ANI,O_RDONLY) >= 0){
   anim_show_logo(kernel_logo_position+1);
   property_set("ani_type","custom");
   property_set("animation_num","On5_Ani");
  }else if (open(LOGO_I7_ANI,O_RDONLY) >= 0) {
   anim_show_logo(kernel_logo_position+2);
   property_set("ani_type","custom");
   property_set("animation_num","I7_Ani");
  }else{
   anim_show_logo(kernel_logo_position);
   property_set("ani_type","android");
   property_set("animtion_num","android");
  }
 }
}

3.framworks/base/cmds/bootanimation/BootAnimation.cpp文件中,在voidBootAnimation::initBootanimationZip()方法中添加切換動畫

char anitype[PROPERTY_VALUE_MAX];
char aninum[PROPERTY_VALUE_MAX];
property_get("ani_type",anitype,"");
property_get("animation_num",aninum,"");
if (strcmp("custom",anitype) == 0) {
 if (strcmp("On5_Ani", aninum)==0) {
  if (access("/system/media/bootanimation_custom.zip", R_OK) == 0) {
   if ((zipFile = ZipFileRO::open("/system/media/bootanimation_custom.zip")) != NULL) {
    mZip = zipFile;
   }
  }
 }else if (strcmp("I7_Ani", aninum)==0){
  if (access("/system/media/bootanimation_s6.zip", R_OK) == 0) {
   if ((zipFile = ZipFileRO::open("/system/media/bootanimation_s6.zip")) != NULL) {
    mZip = zipFile;
   }
  }
 }
}

以上就是關于扣丁學堂Andorid培訓之實現(xiàn)多種開機動畫和logo切換功能的詳細介紹,希望對大家的學習有所幫助,扣丁學堂IT職業(yè)在線學習教育平臺為您提供完整的體系Android視頻教程讓你快速掌握Android從入門到精通開發(fā)實戰(zhàn)技能。

扣丁學堂微信公眾號


【關注微信公眾號獲取更多學習資料】


查看更多關于“Android開發(fā)技術的相關資訊>>

標簽:

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部