android 字符串包含framwork包含哪些代码

经验28725 米
在线时间1324 小时
机型小米平板1
签到次数162
MIUI版本6.4.7
本帖最后由 fw867 于
16:09 编辑
前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单。。。都很感冒!美化的重点跟难点就在于对&framework-res.apk&和&systemUI.apk&这两个文件的编译和反编译!这里说的编译和反编译是所有深度美化都必须要做的事,也就是说,所有的美化都是基于对apk的反编译后,才能进行的!而绝大多数修改&framework-res.apk&和&systemUI.apk&后导致无法进入系统,或者无限开机重启的,基本都是在编译跟反编译上出了问题!
framework-res.apk&&的修改
framework-res.apk文件简介:
framework-res.apk文件位于/system/framework文件夹中,里面有着系统GUI的大部分的图片,包括图标,弹出对话框的样式,动作特效,界面布局,我们要知道&framework-res.apk&是不可以重签名的!(我们要切记这一点)另外,修改&framework-res.apk&之前务必先做好备份!这是相当重要的文件,稍有出错都会令你进不了系统的!以下为Framework-res.apk的文件结构:
/assets
/META-INF
/res
/AndroidManifest.xml
/resources.arsc
复制代码
一、java平台的搭建、下载工具apktool
教程地址及下载地址:
二、反编译framework文件
在解压缩的ROM包或者用RE浏览器打开目录/system/framework下,就会看到有&framework-res.apk&的文件了,直接把他复制到电脑上准备用apktool反编译&framework-res.apk& ,在D盘根目录下建立一个apktool的文件夹,把解压好的APKTool.zip里面的三个文件以及“framework-res .apk”一齐放到D:\apktool中,打开“命令提示符”,方法:“开始--所有程序--附件--命令提示符”,或者快捷键“Win+R”,输入cmd,回车依次输入下面的代码
d:
cd apktool
apktool if framework-res.apk
apktool d framework-res.apk framework-res
PS:d 是反编译命令 后面的 framework-res表示生成文件名为framework-res 的文件夹复制代码
注意:这里的framework-res.apk一定要是原版ROM里的文件,没有经过修改的,不然会导致后面的SystemUI回编译失败。
此时:D:\apktool目录下就会多出一个名为
framework-res
的文件夹,里面放着就是反编译出来的文件了
三.Framework-res.apk图片修改及注意事项
本系列教程的主要研究方向在res文件夹中的图片与XML文件
在修改或替换framework-res.apk中的图片前,向大家提出以下几点建议,望大家注意,避免修改失败
  1)图片的获取
  关于图片的获取,大家可以用winrar打开framework-res.apk文件,进入找到res/drawable-mdpi(有些rom是drawable-ldpi)
把整个文件夹拖出来
  2)图片尺寸要注意
  大家修改时,要注意与原来的图片大小不要相差太远,不然会造成越界问题
  3)图片修改时注意名称一致
  各位在图片修改时,若需要保存,千万记着,图片的名称必须要跟原来的一致,多一个或少一个字都不行!
  4)图片的覆盖
  修改完图片后,我们再在winrar中打开framework-res,把图片分别拖入drawable-mdpi和drawable-ldpi文件夹覆盖
  5)framework-res.apk权限修改
  修改完后的framework-res.apk,权限已经被修改,我们要把它改成完全控制,具体方式如下:
  右击framework-res.apk,选择属性去掉只读属性,选择”安全”选项卡,然后点击编辑,把用户对象的完全控制选上,再点击确定,退出编辑界面。
最后,整理了一下大家经常想要修改的图片列表:
emo_im_xxx&&表情系列图片
ic_jog_dial_xxx&&锁屏界面功能图标(圆形的那些)
ic_lock_idle_xxx&&锁屏界面提示图标
ic_menu_xxx&&系统菜单图标
stat_notify_xxx&&状态栏提示图标(屏幕左方的图标)
stat_sys_battery_xx&&电池图标
stat_sys_battery_charge_animX&&充电时电池图标
stat_sys_upload_animX&&上载图标
stat_sys_download_animX&&下载图标
stat_sys_gps_ongps&&图标
stat_sys_headset&&耳机图标
sym_def_app_icon&&默认程序图标
usb_androidUSB&&连接机器人图片
statusbar_background9&&状态栏背景图标(2.2之后版本的ROM该图标在systemUI.apk里)
jog_dial_bg&&解锁背景图片复制代码
四、回编译 framework-res .apk
当你已经在这里修改好想要修改的东西以后,接下来就要进行编译回去了!! “命令提示符”上输入:
apktool b framework-res复制代码成功编译之后,
framework-res
文件夹就会多了个dist的文件夹,里面放的就是编译好的文件,同样命名为framework-res .apk
好了,重中之重就在下面了!不要以为编译好了就可以把这文件放回手机,还不可以的。
先搞清楚,我们现在有两个apk文件,一个是编译前的framework-res .apk,一个是编译后的framework-res .apk。
用压缩软件同时打开编译前和编译后的 framework-res .apk,是打开,而不是解压
细心观察,会发现编译后的 framework-res .apk ,少了一个META-INF的文件夹,这个其实就是apk包的签名所在,但是这框架文件是不能签名的,所以,我们才要进行下面的步骤
  我们需要把两类文件从编译后framework-res .apk拉到编译前framework-res .apk中替换,
  第一类是:刚才反编译后,你所替换过,或者修改过的所有文件
  第二类是:resources.arsc这一个文件
  所有文件一个都不能替换少了
  记得要放到相同的目录下哦!!
  替换好后,我们就得到了需要的“framework-res.apk”
  然后,用RE浏览器把“framework-res.apk”复制到/system目录下,然后,长按文件名选择权限,具体权限修改为所有用户组读取,用户写入权限(RE管理器挂载为读/写)修改好确定后,再把“framework-res.apk”剪切到/system/framework目录下,选择替换原文件,再次确认权限是否有误!
  PS:一定要修改好权限后才能放进/system/framework,不然系统会马上挂掉的!!
  最后就是重启手机,修改完成!
SystemUI.apk 的修改
SystemUI.apk简介
自android2.2开始,原本存在与framework-res.apk中的状态栏和下拉通知栏界面控制被分割出一个单独的apk文件,命名为SystemUI.apk,保存在System/app文件夹中,可看出,在本文件中,是存在着状态栏的图标,XML控制文件等,这样的分割,使我们可以更方便地去修改,也可更专注的研究美化状态栏。
以下为SystemUI.apk的文件结构:
/res
/META-INF
/AndroidManifest.xml
/classes.dex
resources.arsc
复制代码一.SystemUI.apk图片修改及注意事项
1)图片的获取
  关于图片的获取,大家可以用winrar打开SystemUI.apk文件,进入找到res/drawable-mdpi
2)图片尺寸要注意
  大家修改时,要注意与原来的图片大小不要相差太远,不然会造成越界问题
3)图片修改时注意名称一致
  各位在图片修改时,若需要保存,千万记着,图片的名称必须要跟原来的一致,多一个或少一个字都不行!
4)图片的覆盖
  修改完图片后,我们再在winrar中打开SystemUI.apk,把图片分别拖入drawable-mdpi和drawable-ldpi文件夹覆盖
二.常见修改图片列表
battery_low_battery&&充电提示
stat_2g3g&&下拉通知栏2G/3G切换图标
stat_airplane_on/off&&下拉通知栏飞行模式开启/关闭图标
stat_bluetooth_on/off&&下拉通知栏蓝牙开启/关闭图标
stat_brightness_auto/mid/on/off&&自动调节/适中/开启/关闭下拉通知栏屏幕亮度图标
stat_data_on/off&&下拉通知栏数据控制开启/关闭图标
stat_flashlight_on/off&&下拉通知栏电筒开启/关闭图标
stat_gps_on/off&&下拉通知栏GPS开启/关闭图标
stat_lock_screen_on/off&&下拉通知栏锁屏开启/关闭图标
stat_media_xxx&&下拉通知栏播放器控制图标
stat_ing_xxx&&下拉通知栏声音模式控制图标
stat_orientation_on/off&&下拉通知栏转屏控制图标
stat_screen_timeout_on/off&&下拉通知栏屏幕超时控制图标
stat_sync_on/off&&下拉通知栏同步开启/关闭图标
stat_sys_data_xxx&&数据通信图标
stat_sys_no_sim&&无sim卡通知图标
stat_sys_signal_x&&信号图标
stat_sys_wifi_xwifi&&信号图标
stat_vibrate_XXX&&震动提示图标
shade_bg&&下拉菜单背景
statusbar_background&&状态栏背景图片复制代码
系列教程:
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
已有&22&人评分
感谢分享^_^
MIUI 因你更精彩!
感谢分享^_^
精品文章^_^
求更多教程,支持下
MIUI 因你更精彩!
精品文章^_^
MIUI 因你更精彩!
精品文章^_^
精品文章^_^
图呢???
教程不错!
很不错的教程
经验47414 米
威望440 米
在线时间3586 小时
版本6.4.14
干的时间长了,心累了,疲了倦了,原谅我吧
机型小米手机3/4 WCDMA版
签到次数172
MIUI版本6.4.14
已有&1&人评分
前排加分!
如果对我的解答有什么不清楚的地方,请点击左下角的回复按钮,否则我可能看不到哦~
经验50997 米
威望1420 米
在线时间1758 小时
版本V7.2.7.0.LAJCNDA
学的是工程,每天研究的是手机,兴趣爱好是足球的纯妹纸,甜小甜
机型小米手机4s
签到次数104
MIUI版本V7.2.7.0.LAJCNDA
来支持一下下。
已有&1&人评分
前排加分!
如对我的解答,还有任何疑问,请点击回复,第一时间继续解答。
对我本人有任何意见或建议,请直接微博@我、
经验22739 米
在线时间4210 小时
机型小米手机3/4 WCDMA版
签到次数162
MIUI版本6.4.1
前排支持下....
已有&1&人评分
前排加分!
经验61740 米
威望357 米
在线时间5703 小时
版本6.4.15
头像是我女儿
机型小米手机4
签到次数252
MIUI版本6.4.15
好好学习一下
已有&1&人评分
前排加分!
MIUI社区解答组招募公告,期待您的加入!
经验1261 米
在线时间191 小时
版本2.10.19
积分 1821, 距离下一级还需 179 积分
积分 1821, 距离下一级还需 179 积分
机型Samsung I9100
签到次数14
MIUI版本2.10.19
很好很强大,支持易一下!
已有&1&人评分
前排加分!
喜欢的就去争取!
经验3970 米
在线时间379 小时
积分 4696, 距离下一级还需 304 积分
积分 4696, 距离下一级还需 304 积分
机型Samsung I9000
晚了~~~
已有&1&人评分
前排加分!
经验2197 米
在线时间707 小时
版本V6.2.2.0.KHICNBK
积分 3086, 距离下一级还需 1914 积分
积分 3086, 距离下一级还需 1914 积分
机型红米Note 4G版
签到次数13
MIUI版本V6.2.2.0.KHICNBK
不错的教程啊 !|
已有&1&人评分
前排加分!
经验1417 米
在线时间342 小时
版本4.11.3
积分 1900, 距离下一级还需 100 积分
积分 1900, 距离下一级还需 100 积分
机型三星I9505
签到次数27
MIUI版本4.11.3
前十。哇。!!
修改了不能OTA,升级后又修改?麻烦啊。
已有&1&人评分
前排加分!
经验25099 米
威望112 米
在线时间5662 小时
版本V7.2.1.0.KXFCNDA
机型小米平板1
签到次数173
MIUI版本V7.2.1.0.KXFCNDA
这个是????
&font color=&Red&&喜欢我的墙纸就加点米吧,请勿灌水回复[img]/static/image/smiley/
MIUI 3000万
MIUI 3000万发烧友纪念勋章
MIUI 2000万
MIUI 2000万发烧友纪念勋章
1000万用户纪念勋章
MIUI1000万用户纪念勋章
MIUI 7纪念勋章
解答组专属勋章
解答组专属勋章
MIUI五周年
MIUI五周年纪念勋章
小米平板首发纪念勋章
小米平板首发纪念勋章
小米手机3终身荣誉勋章
小米手机3终身荣誉勋章
小米手机2终身荣誉勋章
小米手机2终身荣誉勋章
MIUI三周年
MIUI三周年纪念勋章
百万壁纸评审纪念勋章
已关注微信
已关注极客秀微信
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
MIUI 100周
100周发布纪念勋章
小米手机元器件合体活动勋章
小米求合体勋章
MIUI V5内测元勋
MIUI V5内测元勋勋章
MIUI俱乐部发烧友
MIUI俱乐部发烧友
MIUI年度优秀勋章
小米5发布会
参加小米5发布会直播页大转盘抽奖获得
参加流量购买活动
Copyright (C) 2016 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号Android系统Framework层源码分析_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Android系统Framework层源码分析
上传于||文档简介
&&A​n​d​r​o​i​d​系​统​F​r​a​m​e​w​o​r​k​层​源​码​分​析
大小:1.18MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢平时写android程序过程中发现很多东西用得心里没底, 想着阅读一些android的源代码, 请问哪些比较重要或者很值得学习的源码中的类可以学习?
《Android开发艺术探索》这本书很经典,一楼二楼说的知识点书里基本都涵盖了,而且结构清晰,通俗易懂
几块需要看的&br&1.handler looper 是咋工作的&br&2.touch事件的响应&br&3.view的绘制&br&4.viewgroup的测量与布局&br&5.四大组件常用方法的实现&br&&br&以上是一个android开发务必搞清楚的&br&&br&其余按需求看,形成调用方法时,f2进去看看实现的条件反射&br&&br&阅读源码是逐步进行的,其实不推荐初看源码的人去阅读pms ams wms的代码,大多数人都会知难而退,先了解基本的,常用的,一旦养成那些条件反射,便会逐步揭开那些晦涩难懂模块的幕布,自己觉得幕布揭的差不多了再去系统看,事半功倍。&br&&br&千万记得,直接阅读大量源码对于大多数人来说只会头疼,过几天什么都忘了,那个条件反射才是最重要的。
几块需要看的1.handler looper 是咋工作的2.touch事件的响应3.view的绘制4.viewgroup的测量与布局5.四大组件常用方法的实现以上是一个android开发务必搞清楚的其余按需求看,形成调用方法时,f2进去看看实现的条件反射阅读源码是逐步进行的,其实不推荐初看…
谢邀,题主如果是写应用方面的程序,我觉得大部分代码可以浅读,大体了解流程,不需要抠具体细节,但是还有一部分代码需要我们深读一下,掌握原理。&br&&br&深读:&br&如:View、ViewGroup、AdapterView、ListView、GridView、Window、ViewDragHelper、ItemTouchHelper、SurfaceView、TextureView、VelocityTracker、GestureDetector、Scroller、ScrollerCompat、OverScroller等&br&&br&浅读:&br&WMS、AMS、PMS、NMS、InputSystem等相关实现&br&&br&1. Android事件分发机制:帮助你在写复杂自定义控件时协助解决事件冲突。&br&2. View的测量布局和绘制机制,熟练掌握画布Canvas API、Android坐标系、触控事件等,熟悉绘图技巧、熟悉滑动原理。&br&3. Android动画:熟练掌握动画Tween Animation、Frame Animation、Property Animation,有助于你写出交互体验好的自定义控件。&br&4. Android多线程通信原理、线程控制、线程池、掌握Handler、Looper、ThreadLocal、Thread、Runnable、AsyncTask、HandlerThread、IntentService、Future、FutureTask、Callable等,掌握Java并发编程。&br&5.掌握Android进程间通信原理,试着分析Binder工作机制。&br&5.了解Activity启动过程,可以从startActivity()一步一步分析源码,过程不必拘泥于实现细节,掌握大致流程即可。&br&6.了解四大组件工作过程,和上面一个一样,从源码分析,一步一步来看WMS、AMS、PMS、NMS等如何通过binder完成进程间通信。&br&7.了解window创建过程、掌握window添加删除更新机制。&br&8.理解C如Application对应的Context、Activity对应的Context、Service对应的Context以及Context之间的关系&br&9.掌握Android资源加载机制&br&&br&用的比较多的Java辅助知识点:&br&1. 并发编程:线程池、ThreadLocal、Future、FutureTask、Callable等&br&2.Java动态代理(cglib/jdk)、反射&br&3.Java IO、集合类&br&4.序列化&br&5.注解&br&6.IOC和AOP&br&7.类加载器&br&……&br&&br&以上仅仅是个人见解,待完善,希望对题主有帮助,另外我自己也会分享和整理一些不错的文章、库、项目、资源站到&a href=&///?target=http%3A//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MobDevGroup&i class=&icon-external&&&/i&&/a&,希望对你有帮助&br&&br&------------------------------------------------分割线-----------------------------------------------------&br&&br&后面有童鞋提到书籍,这里我也想补充下我看过的不错的Android图书,给大家做个参考,另外我也会一直更新MobDevGroup资源,尤其是Android版块的优秀分类文章,遇到不错的都会放上去:&br&&ul&&li&郭霖:《第一行代码》&br&&/li&&li&徐宜生:《Android群英传》&br&&/li&&li&任玉刚:《Android开发艺术探索》&br&&/li&&li&何红辉、关爱民:《Android源码设计模式解析与实战》&br&&/li&&li&柯元旦:《Android内核剖析》&br&&/li&&li&包建强:《App研发录:架构设计、Crash分析和竞品技术分析》&br&&/li&&li&【韩】金泰延、宋享周、朴知勋、李白、林起永 著-----武传海 译《Android框架揭秘》&br&&/li&&li&丰生强:《Android软件安全与逆向分析》&/li&&/ul&
谢邀,题主如果是写应用方面的程序,我觉得大部分代码可以浅读,大体了解流程,不需要抠具体细节,但是还有一部分代码需要我们深读一下,掌握原理。深读:如:View、ViewGroup、AdapterView、ListView、GridView、Window、ViewDragHelper、ItemTouchHelper…
已有帐号?
无法登录?
社交帐号登录
http://lijianqiang12.github.ioAndroid framwork cpp调用java function
这里以android_view_PointerIcon.cpp的函数getSystemIcon为例。
1、在gPointerIconClassInfo的结构体中,定义了jmethodID getSystemIcon,并且在
register_android_view_PointerIcon中进行初始化设置;
static struct {
jfieldID mS
jfieldID mB
jfieldID mHotSpotX;
jfieldID mHotSpotY;
jmethodID getSystemI
} gPointerIconClassI
int register_android_view_PointerIcon(JNIEnv* env) {
FIND_CLASS(gPointerIconClassInfo.clazz, "android/view/PointerIcon");
GET_FIELD_ID(gPointerIconClassInfo.mBitmap, gPointerIconClassInfo.clazz,
"mBitmap", "Landroid/graphics/B");
GET_FIELD_ID(gPointerIconClassInfo.mStyle, gPointerIconClassInfo.clazz,
"mStyle", "I");
GET_FIELD_ID(gPointerIconClassInfo.mHotSpotX, gPointerIconClassInfo.clazz,
"mHotSpotX", "F");
GET_FIELD_ID(gPointerIconClassInfo.mHotSpotY, gPointerIconClassInfo.clazz,
"mHotSpotY", "F");
GET_STATIC_METHOD_ID(gPointerIconClassInfo.getSystemIcon, gPointerIconClassInfo.clazz,
"getSystemIcon", "(Landroid/content/CI)Landroid/view/PointerI");
GET_METHOD_ID(gPointerIconClassInfo.load, gPointerIconClassInfo.clazz,
"load", "(Landroid/content/C)Landroid/view/PointerI");
GET_STATIC_METHOD_ID(gPointerIconClassInfo.getSystemIcon, gPointerIconClassInfo.clazz,
"getSystemIcon", "(Landroid/content/CI)Landroid/view/PointerI");
第一个传入参数会被初始化为java层的getSystemIcon引用,第三个参数即是java层函数名,第四个是java层函数的输入输出参数描述
2、register_android_view_PointerIcon是在Runtime.cpp中运行的;
extern int register_android_view_PointerIcon(JNIEnv* env);
static const RegJNIRec gRegJNI[] = {
REG_JNI(register_android_view_MotionEvent),
REG_JNI(register_android_view_PointerIcon),
REG_JNI(register_android_view_VelocityTracker),
jobject android_view_PointerIcon_getSystemIcon(JNIEnv* env, jobject contextObj, int32_t style) {
jobject pointerIconObj = env->CallStaticObjectMethod(gPointerIconClassInfo.clazz,
gPointerIconClassInfo.getSystemIcon, contextObj, style);
if (env->ExceptionCheck()) {
ALOGW("An exception occurred while getting a pointer icon with style %d.", style);
LOGW_EX(env);
env->ExceptionClear();
return NULL;
return pointerIconO您所在的位置: &
2.2.1 框架层源代码目录frameworks
2.2.1 框架层源代码目录frameworks
机械工业出版社
《Android开发精要》第2章Android源代码的下载和编译,本章的主要目的是介绍如何去获取编译一份Android源代码,并利用它进一步学习、了解甚至改善Android。学习开发Android应用有很多途径,利用源代码肯定不会是最快捷、最系统的方式,但却是最令人印象深刻的方式之一。本节为大家介绍框架层源代码目录frameworks。
2.2 Android源代码结构
在进一步阅读和理解Android源代码之前,你还需要先停下来,从整体上了解Android源代码的目录结构。正所谓“磨刀不误砍柴工”,否则一旦一头扎进纷繁的细节中,就成了盲人摸象,只见树木不见森林了。
整个Android项目的目录结构,自然地依照各个层次和功能分割开了。如图2-1所示,在Android的根目录下,有frameworks、packages、system等一级子目录。依次了解这些目录中的内容和特征,便可以把握整个Android源代码的结构特点。
2.2.1 框架层源代码目录frameworks
在frameworks目录下,集中放置了Android框架层的代码。其中大部分功能模块是通过Java语言进行编写的,而对执行效率有很高要求的模块则是通过C/C++来实现的。对于Android应用开发者而言,这可能是你最需要阅读和学习的部分。它包含了SDK中的各个功能模块以及Android中各部分核心机理的实现,也是本书主要介绍的内容。
frameworks有三个重要的子目录,分别是base、opt、polices。
在base目录中,放置了框架层的基本内容,包含用到的Java文件、相关资源文件和jni类库的实现。 其中最为核心的是base中的core目录,在其中放置了大部分的框架层实现。
(点击查看大图)图2-1 Android源代码目录结构图
opt目录为option(可选)的意思,放置了框架层一些附加功能的模块。从概念上来看,Google为Android提供的一些功能模块,比如Google地图模块、Google定位服务模块,都位于该目录下。只不过,其中大部分模块的实现,都没有开源。
在polices目录中放置的是和具体设备类别相关的实现。Android希望能够在不同的设备上运行,由于设备使用特征的差异(并不是硬件特征),会需要一些不同的实现。比如在手机上,Android呈现出来的窗口结构,是最顶上的状态栏和紧接它的标题栏,以及主要视图区域和弹出菜单项部分。但如果在移动互联网设备(Mobile Internet Device,MID)上运行Android,由于可视区域更大,如果再采取和手机上一致的窗口策略,就类似于“大脚穿小鞋”了。因此,不同特征设备有着不同的策略,这些实现会依照其设备名称,分子目录放在polices目录中。【责任编辑: TEL:(010)】
关于&&的更多文章
如何才能写出贴近Android设计理念、能够更加高效和可靠运行的And
网友评论TOP5
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
本书是由51CTO调研中心撰写的2011年度移动开发者生存
厌倦了让人昏昏欲睡的网络术语?想学网络管理却苦于无
这是一本以设计师第一视角和切身体会来完成的书。
本书的上一版本《基于Project 2002的项目管理》上市以后得到了读者的欢迎,为了更好地将Project 2003新版本的应用介绍给读者,我
51CTO旗下网站

我要回帖

更多关于 android 重复包含jar 的文章

 

随机推荐