Andorid 시스템 은 다양한 부팅 애니메이션 과 로고 전환 기능 을 실현 합 니 다.

머리말
mtk 6580 기반 다 중 로고 와 스위치 애니메이션 전환 추가
묘사 하 다.
현재 안 드 로 이 드 켜 기 화면 은 세 부분(단계)으로 구성 되 어 있 으 며,첫 번 째 부분 은 bootloader 가 시 작 될 때(정적),두 번 째 부분 은 kernel 을 시작 할 때(정적),세 번 째 부분 은 시스템 이 시 작 될 때(bootanimation)표시(애니메이션)입 니 다.
자원 추가
1.device/tangxun/tx 6580weg_m/ProjectConfig.mk,BOOT 찾기LOGO=이 항목 을 기억 하 십시오(예:hd 720,).vendor/mediatek/propertietary/bootable/bootloader/lk/dev/logo/디 렉 터 리 에서 BOOT 을 찾 습 니 다.LOGO=대응 하 는 폴 더 에 당신 의 그림 을 넣 습 니 다.그림 은 제 가 이렇게 명명 한 hd 720 입 니 다.kernel_i7.bmp.(교체 만 한다 면 hd 720kernel.bmp 와 hd 720uboot.bmp 이 두 장의 그림 을 사용 하면 됩 니 다.새 그림 의 이름 은 이전 그림 과 일치 해 야 합 니 다)
2.vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/rules.mk 에서 RESOURCE 수정OBJ_LIST 목록,그림 참조:
在这里插入图片描述
마지막 두 가 지 는 제 가 추 가 했 어 요.
3.같은 디 렉 터 리 아래 update 파일 에 추가
在这里插入图片描述
로고 추가
사고:먼저 우리 가 추가 한 표 지 는 쉽게 제거 되 지 못 한다.이 는 출하 설정 을 복원 하 는 상황 을 포함한다.그래서 저 는 protectf.파 티 션 에서 빈 파일 을 만 드 는 방식 으로 show 로고 가 있 을 때 해당 파일 이 존재 하 는 지 판단 하여 서로 다른 로고 와 애니메이션 을 보 여 줍 니 다.
1.보 여줄 로고 와 애니메이션 을 선택 하고 protectf 파 티 션 에서.dat 접미사 파일 을 만 들 고 다른 유형의 애니메이션 을 protect 에서 삭제 합 니 다.f 파 티 션 에 해당 하 는 파일

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/charginganimation.cpp 파일 에 로고 전환 추가

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(){  //         
 SLOGD("[libshowlogo: %s %d]show kernel logo, index = 38 
",__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 파일 에 void BootAnimation::initBootanimation Zip()방법 에 전환 애니메이션 추가

 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;
    }
   }
  }
 }
 if (zipFile == NULL) {
총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 Andorid 시스템 이 다양한 부팅 애니메이션 과 로고 전환 기능 을 실현 하 는 것 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기