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

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 的结构大纲:

     <manifest> 文件根节点,描述了程序包的所有内容;
     <uses-permission> 请求一个安全授权,必须被授予该权限,程序包才能正确的操作;
     <permission> 声明一个安全授权,用来限制哪些应用可以访问程序包内的组件和特有机制;
     <instrumentation>
     <application> 描述程序包内应用级别组件的根节点,该节点能够描述应用程序的全局和默认属性;
     <activity> 应用于用户交互的最主要机制,当一个应用运行的时候,用户看到的第一个屏幕就是activity;
     <intent-filter>
    <action>
    <category>
    <type>
    <scheme>
    <authority>
    <path>
    <receiver>
一个 IntentReceiver 可以让应用接收到一次数据变化和一次行为发生的通知;
     <service> Service 是一个在后台任意时刻都可以运行的组件;
     <provider> 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 version="1.0"encoding="utf-8"?> XML解析定义和 utf-8 编码格式
  
<resources>根节点,即引用的资源,存在于根目录中
  
<string-array name="*** "> 所定义的内容名称
  
<item> ***</item> 内容定义,这里我们看到的都是英文,在上级目录里的 values-zh-rCN 里即中文翻译
  
</string-array>代码后缀,使其之上代码生效

attrs.xml

  
<?xml version="1.0"encoding="utf-8"?>
  <resources>
   <attr name=" *** " format=" *** "/>
attr name 是指 attr属性对应的属性名,format 是指属性类型
   <enum name=" *** " value="* " /> enum name枚举名称,valie 对于 enum name 的宏定义
  </attr> 属性后缀,使其之上代码生效

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

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <bool name=" ***">false</bool>
bool name 该目录下的布尔值名称,false \ true相对应的布尔值
  </resources>

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

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <color name=" ***">#8000</color>
color name 可自定义元素的名称;#8000对应元素的颜色代码
  </resources>

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

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

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <dimen name=" *** "> **dip</dimen>
dimen name 对应元素的名称;** dip 度量值,即距离数值
  </resources>

drawables.xml

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <drawable name=" *** ">@ ***</drawable>
所要定义颜色值的相关名称,@后即要对此执行该定义
  </resources>

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

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <item type="id" name=" ** "/>
item type 对应值必须是id,只包含属性;name 即名称,拥有唯一的 ID
  </resources>

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

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <integer name=" *** "> **</integer>
integer name 定义元素的名称;** 必须是整数,定义对应元素的数值
  </resources>

plurals.xml

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <plurals name=" *** ">
要定义的元素名称
   <itemquantity="other">%d***</item> 该定义值通常会影响到对应元素显示乱码问题
   <itemquantity="one">1 secondago</item> 对应定义元素的项目数以及对应时间数值
  </plurals> 定义后缀,使其之上的定义代码生效
  </resources>

public.xml

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <public type="attr" name=" *** " id=" ** "/>
public type类型定义;"attr" name 属性名称;
   <public type="id" name="*** " id=" ** " /> id="** "唯一的 ID定义
   <public type="style" name="*** " id=" ** " />
   <public type="string"name=" *** " id=" ** " />
   <public type="color" name="*** " id=" ** " />
   <public type="drawable"name=" *** " id=" ** " />
   <public type="layout"name=" *** " id=" ** " />
   <public type="anim" name="*** " id=" ** " />
   <public type="xml" name="*** " id=" ** " />
   <public type="raw" name="*** " id=" ** " />
   <public type="bool" name="*** " id=" ** " />
   <public type="integer"name=" *** " id=" ** " />
   <public type="plurals"name=" *** " id=" ** " />(同上)
  </resources>

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

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <string name=" *** "> **</string>
*** 要定义名称的元素名;** 该元素的定义名称
  </resources>

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

styles.xml

  <?xml version="1.0"encoding="utf-8"?>
  <resources>
   <style name="Animation" />
style name 即样式名称
   <stylename="Animation.Activity" parent="@ ***">父级样式名称对应样式定义
   <item name=" ***">@ ***</item>子级样式名称和样式定义
  </style> 样式定义后缀,使其之上代码生效
   <style name=" *** "parent="@ ***">
   <item name=" ***">@***</item>
   <item name=" ***">@***</item>
  </style>
  </resources>
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值