热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ROM美化课堂之framework-res.apk文件详解

framework-res.apk是ROM美化爱好者们必须拜读的文章,美化爱好者们必须攻克的一关!
framework-res.apk是ROM美化爱好者们必须拜读的文章,美化爱好者们必须攻克的一关!
                                                              ——此教程来源于网络,稍加整理修饰


首先需要反编译framework-res
在system/framework目录下
这里提供一个很方便的反编译工具,右键apk就可以反编译

http://android-apkdb.googlecode.com/files/Apkdb_Setup172d.exe

assets这个目录就不多说了- -,不是音频就是图片

然后是res目录,这个要好好说一说:


anim文件夹(存放ROM动画效果控制文件)——***.xml
color(一目了然,这个文件夹存放的是ROM各位置的颜色控制代码)——***.xml
drawable / drawable-***(ROM 的基本资源库,存放各种资源来供控制文件调用)——***.xml / **.png
layout / layout-***(ROM层面布局控件,简单理解就是控制各个部位的所在位置,如各种图标)——***.xml
raw / raw-***(一般情况这些目录不需要动)——***.png /***.ogg /***.html
values / values-***(各种语言包控件)——***.xml
xml / xml-**(全局控制文件,一般情况这些目录不需要动)——***.xml

AndroidManifest.xml 和apktool.yml
AndroidManifest.xml 是每一个应用都需要的文件;
    位于应用的根目录下,描述了程序包的一个全局变量;
    包括暴露的应用组件(activities, services 等)和为每个组件的实现类;
    什么样的数据可以操作,以及在什么地方运行;

    ▲ 一般情况下不需要动该文件

    AndroidManifest.xml 的结构大纲:

    文件根节点,描述了程序包的所有内容;
    请求一个安全授权,必须被授予该权限,程序包才能正确的操作;
    声明一个安全授权,用来限制哪些应用可以访问程序包内的组件和特有机制;
    
    描述程序包内应用级别组件的根节点,该节点能够描述应用程序的全局和默认属性;
    应用于用户交互的最主要机制,当一个应用运行的时候,用户看到的第一个屏幕就是activity;
    
    
    
    
    
    
    
    
一个 IntentReceiver 可以让应用接收到一次数据变化和一次行为发生的通知;
    Service 是一个在后台任意时刻都可以运行的组件;
    ContentProvider组件是用来管理数据持久化及数据发布的,发布的数据可以被其他的应用访问;

    apktool.yml 是 apktool反编译时生成的一个配置文件,不需要动这个文件,重新编译时缺它不可;

anim文件夹下即我们通常所说到的动画特效文件,在这里我通过表格的方式来说明(非专业解释,仅供参考)

特效文件名称 对应特效解释 特效文件名称 对应特效解释
wallpaper_open_exit 退出程序移除 wallpaper_open_enter 退出程序弹出
wallpaper_intra_open_exit 程序内部退出移除 wallpaper_intra_open_enter 程序内部退出弹出
wallpaper_intra_close_exit 程序内部进入移除 wallpaper_intra_close_enter 程序内部进入弹出
wallpaper_exit 程序后台移除 wallpaper_enter 程序后台弹出
wallpaper_close_exit 进入程序移除 wallpaper_close_enter 进入程序弹出
translucent_exit 选择光标移除 translucent_enter 选择光标弹出
toast_exit 提示窗口移除 toast_enter 提示窗口弹出
task_open_exit 任务退出移除 task_open_enter 任务退出弹出
task_close_exit 任务进入移除 task_close_enter 任务进入弹出
submenu_exit 子菜单移除 submenu_enter 子菜单弹出
status_bar_exit 状态栏移除 status_bar_enter 状态栏弹出
slide_out_right 右部滑出 slide_out_left 左部滑出
slide_out_down 下部滑出 slide_in_up 上部滑入
slide_in_right 右部滑入 slide_in_left 左部滑入
slide_in_child_bottom 子栏下部滑入 shrink_fade_out_from_bottom 下部渐变滑出
shrink_fade_out_center 中部渐变滑出 shrink_fade_out 渐变滑出
search_bar_exit 搜索栏移除 search_bar_enter 搜索栏弹出
recent_exit 最近任务移除 recent_enter 最近任务弹出
push_up_out 触控移除 push_up_in 触控弹出
push_down_out 底部触控移除 push_down_in 底部触控弹出
priority_alert_exit 优先提示栏移除 priority_alert_enter 优先提示栏弹出
overshoot_interpolator 多屏切换 options_panel_exit 选项菜单移除
options_panel_enter 选项菜单弹出 lock_screen_exit 解锁移除
lock_screen_enter 解锁弹出 lock_screen_controlview_fade_out 解锁渐变弹出
lock_screen_behind_enter 锁屏后进入 lock_screen_album_fade_out 锁屏后渐变弹出
lock_screen_album_fade_in 锁屏后渐变进入 linear_interpolator 线性插补
input_method_fancy_exit 输入法退出移除 input_method_fancy_enter 输入法退出弹出
input_method_extract_exit 提取词库移除 input_method_extract_enter 提取词库弹出
input_method_exit 输入法面板移除 input_method_enter 输入法面板弹出
grow_fade_in_from_bottom 底部超出渐变 grow_fade_in_center 中部进入渐变
grow_fade_in 超出渐变 fade_out 最近任务移除
fade_in 最近任务弹出 dialog_exit 窗口移除
dialog_enter 窗口弹出 decelerate_interpolator 加速插补
cycle_interpolator 多次加速插补 bounce_interpolator 反弹插补
app_starting_exit 运行程序移除 anticipate_overshoot_interpolator 预先加速
anticipate_interpolator 预先加速 alert_dialog_exit 提示对话框移除
alert_dialog_enter 提示对话框弹出 activity_open_exit 退出多级菜单移除
activity_open_enter 退出多级菜单弹出 activity_close_exit 进入多级菜单移除
activity_close_enter 进入多级菜单弹出 accelerate_interpolator 动画加速
accelerate_decelerate_interpolator 动画加速后减速 —————— ——————

详细介绍 res \ values目录

   res \ values 目录结构和相关解释在 №.2中我们已经介绍了,那么下面来针对里面的文件进行介绍
   这些属性我们在定制 ROM时通常可以自定义,但是我们在修改的过程中不能轻易大动手脚,这里只简单介绍一下

   ▲ 因 ROM不同,文件可能也会不同,以下仅供参考

arrays.xml

  
XML解析定义和 utf-8 编码格式
  
根节点,即引用的资源,存在于根目录中
  
所定义的内容名称
  
*** 内容定义,这里我们看到的都是英文,在上级目录里的 values-zh-rCN 里即中文翻译
  
代码后缀,使其之上代码生效

attrs.xml

  

  
  
attr name 是指 attr属性对应的属性名,format 是指属性类型
   enum name枚举名称,valie 对于 enum name 的宏定义
   属性后缀,使其之上代码生效

bools.xml(存放布尔值的 XML 资源)

  
  
   false
bool name 该目录下的布尔值名称,false \ true相对应的布尔值
  

colors.xml(存放16进制颜色值的 XML 资源)

  
  
   #8000
color name 可自定义元素的名称;#8000对应元素的颜色代码
  

  ▲ 该代码中所对应的属性值存在于上级目录中的 “ color ”文件夹;自定义颜色部分代码点击查看

dimens.xml(存放带计量单位的数量值 XML 资源)

  
  
   **dip
dimen name 对应元素的名称;** dip 度量值,即距离数值
  

drawables.xml

  
  
   @ ***
所要定义颜色值的相关名称,@后即要对此执行该定义
  

ids.xml(用 XML 格式定义的资源唯一 ID)

  
  
  
item type 对应值必须是id,只包含属性;name 即名称,拥有唯一的 ID
  

integers.xml(用 XML 格式定义的整数资源)

  
  
   **
integer name 定义元素的名称;** 必须是整数,定义对应元素的数值
  

plurals.xml

  
  
  
要定义的元素名称
   %d*** 该定义值通常会影响到对应元素显示乱码问题
   1 secondago 对应定义元素的项目数以及对应时间数值
   定义后缀,使其之上的定义代码生效
  

public.xml

  
  
  
public type类型定义;"attr" name 属性名称;
   id="** "唯一的 ID定义
  
  
  
  
  
  
  
  
  
  
   (同上)
  

strings.xml(这里存放的就是我们所熟悉的各程序的各组件名称定义)

  
  
   **
*** 要定义名称的元素名;** 该元素的定义名称
  

  ▲ 在上级目录的 values-zh-rCN文件夹中有对应的中文翻译

styles.xml

  
  
  
样式定义后缀,使其之上代码生效
  
  

推荐阅读
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
author-avatar
天堂寨旅游2013_668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有