设为首页收藏本站

移动叔叔

搜索
查看: 3378|回复: 0
打印 上一主题 下一主题

[教程] framework-res.apk文件详解【申精】【隐藏】【加亮】

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-2 10:36:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先需要反编译framework-res(在system/framework目录下)

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

这个要好好说一说:anim文件夹(存放ROM动画效果控制文件)

—— ***.xmlcolor(一目了然,这个文件夹存放的是ROM各位置的颜色控制代码)

——***.xmldrawable / drawable-***(ROM 的基本资源库,存放各种资源来供控制文件调用)

——***.xml / **.pnglayout / layout-***(ROM 层面布局控件,简单理解就是控制各个部位的所在位置,如各种图标)

——***.xmlraw / raw-***(一般情况这些目录不需要动)

——***.png / ***.ogg /***.htmlvalues / values-***(各种语言包控件)

——***.xmlxml / xml-**(全局控制文件,一般情况这些目录不需要动)

——***.xmlAndroidManifest.xml 和 apktool.ymlAndroidManifest.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=" *** "> 要定义的元素名称
   <item quantity="other">%d ***</item> 该定义值通常会影响到对应元素显示乱码问题
   <item quantity="one">1 second ago</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 即样式名称
   <style name="Animation.Activity" parent="@ ***"> 父级样式名称对应样式定义
   <item name=" *** ">@ ***</item> 子级样式名称和样式定义
   </style> 样式定义后缀,使其之上代码生效
   <style name=" *** " parent="@ ***">
   <item name=" *** ">@ ***</item>
   <item name=" *** ">@ ***</item>
   </style>
  </resources>


您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /1 下一条

© 2008-2025 移动叔叔. 版权所有,专业的网络售后平台 ( 闽ICP备18006692号-3 )

商务合作点击这里给我发消息|Email:service@mobileuncle.com|手机版|移动叔叔     

GMT+8, 2025-2-21 21:51 , Processed in 0.258336 second(s), 11 queries , Gzip On, Memcache On.

返回顶部