- 浏览: 206352 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xumin_minzi:
我也在使用ndk编译,ffmpeg源码放在哪个目录里面?
[原创]Android ndkr8编译 FFmpeg 0.11.1 "Happiness" -
ericchan2012:
在Dialog调用show方法之后
【原创】Android 设置Dialog的长宽和位置 -
maohualei:
求解: 我设置的时候 位置居然没有反应 dial ...
【原创】Android 设置Dialog的长宽和位置
涉及到的源码(4.0)
1,跟踪Power键的长按事件,定位到弹出关机Dialog的源码是在PhoneWindowManager.java中
继续跟踪代码找到Runnable mPowerLongPress = new Runnable(),在该runnable里边调用showGlobalActionsDialog()方法便是显示长按power键弹出的关机提示对话框,如果你的机器是原生态的,默认提示“飞行模式”,“静音”和“关机”选项。
showGlobalActionsDialog创建关机对话框的代码在GlobalActions.java里边,主要代码如下:
如上,加入红色部分代码,由于ShutdownThread中已经有了reboot函数。
当然要在values/strings.xml中加入
reboot方法的后两个参数解释如下:
reason 如果值为是null,正常重启;如果是recovery,系统重启进入recovery mode
confirm true显示关机提示框,需要用户【确认】;false不显示提示框,直接关机
2,另外一个问题是提示框的问题
在ShutdownThread.java的beginShutdownSequence(context)中加入对是否为reboot的判断:
3,编译
注意顺序
最后编译
因为修改涉及到系统资源文件又涉及到policy.jar包,所以按照以下顺序:
步骤1.编译frameworks/base/res,在out/target/product/X设备名X/system/framework/目录下生成framework-res.apk
步骤2.编译frameworks/base/,在out同样目录下生成framework.jar包(不能忽略,不然步骤3编译报错)
步骤3.编译frameworks/base/policy,在同样目录下生成policy.jar包
ics/frameworks/base/policy/src/com/android/internal/policy/impl/目录下: PhoneWindowManager.java GlobalActions.java ics/frameworks/base/core/java/com/android/internal/app/目录下: ShutdownThread.java
1,跟踪Power键的长按事件,定位到弹出关机Dialog的源码是在PhoneWindowManager.java中
继续跟踪代码找到Runnable mPowerLongPress = new Runnable(),在该runnable里边调用showGlobalActionsDialog()方法便是显示长按power键弹出的关机提示对话框,如果你的机器是原生态的,默认提示“飞行模式”,“静音”和“关机”选项。
showGlobalActionsDialog创建关机对话框的代码在GlobalActions.java里边,主要代码如下:
private AlertDialog createDialog() { …… mItems = new ArrayList<Action>(); // first: power off mItems.add( new SinglePressAction( com.android.internal.R.drawable.ic_lock_power_off, R.string.global_action_power_off) { public void onPress() { // shutdown by making sure radio and power are handled accordingly. ShutdownThread.shutdown(mContext, true); } public boolean showDuringKeyguard() { return true; } public boolean showBeforeProvisioning() { return true; } }); [color=red] mItems.add( new SinglePressAction( com.android.internal.R.drawable.ic_lock_power_off, R.string.global_action_reboot) { public void onPress() { // shutdown by making sure radio and power are handled accordingly. ShutdownThread.reboot(mContext, true); } public boolean showDuringKeyguard() { return true; } public boolean showBeforeProvisioning() { return true; } });[/color] // next: airplane mode mItems.add(mAirplaneModeOn); // last: silent mode if (SHOW_SILENT_TOGGLE) { mItems.add(mSilentModeAction); } …… }
如上,加入红色部分代码,由于ShutdownThread中已经有了reboot函数。
当然要在values/strings.xml中加入
<string name="global_action_reboot">重启</string> <string name="reboot_progress">"正在重启..."</string>
reboot方法的后两个参数解释如下:
reason 如果值为是null,正常重启;如果是recovery,系统重启进入recovery mode
confirm true显示关机提示框,需要用户【确认】;false不显示提示框,直接关机
2,另外一个问题是提示框的问题
在ShutdownThread.java的beginShutdownSequence(context)中加入对是否为reboot的判断:
…… if(mReboot){ // reboot progress pd.setTitle(context.getText(com.android.internal.R.string.global_action_reboot)); pd.setMessage(context.getText(com.android.internal.R.string.reboot_progress)); }else{ // shutdown progress pd.setTitle(context.getText(com.android.internal.R.string.power_off)); pd.setMessage(context.getText(com.android.internal.R.string.shutdown_progress)); } ……
3,编译
注意顺序
最后编译
因为修改涉及到系统资源文件又涉及到policy.jar包,所以按照以下顺序:
步骤1.编译frameworks/base/res,在out/target/product/X设备名X/system/framework/目录下生成framework-res.apk
步骤2.编译frameworks/base/,在out同样目录下生成framework.jar包(不能忽略,不然步骤3编译报错)
步骤3.编译frameworks/base/policy,在同样目录下生成policy.jar包
发表评论
-
Android锁屏的问题
2012-10-19 09:17 1356本文主要讨论Android锁屏的问题,具体有2个需求: 1、 ... -
android 修改开关机铃声
2012-10-18 16:52 18631,boot铃声,在surfaceflinger.cpp中re ... -
android输入法全屏问题
2012-10-18 15:18 1345两种方法: 一是在源码里进行修改。frameworks/bas ... -
android 解锁,锁屏流程
2012-10-16 15:36 7073解锁、锁屏界面状态改 ... -
android 从横屏到竖屏状态出现黑屏
2012-10-16 12:08 1841修改WindowManagerService.java中的pe ... -
android添加reboot选项
2012-10-13 15:33 14861,GlobalAction.java中mItems = Li ... -
手机硬件
2012-10-13 13:39 1007转自http://bbs.meizu.com/thread-4 ... -
Android编译后的文件结构
2012-10-09 18:57 855Android编译完成后,将在根目录中生成一个out文件夹,所 ... -
framework下资源文件---自定义统一的系统风格
2012-09-26 17:46 12211.系统资源文件位置:framework/base/core/ ... -
Android系统默认值的设置
2012-09-26 09:25 11641开机图片: android-logo-mask.png ... -
android apk安装原理分析
2012-09-25 14:16 1793参考了网上的资料和源码,肤浅分析了下,不够深入。 An ... -
android 触屏反馈原理
2012-09-25 14:13 1789android中触屏反馈原理 HOPE mt6516 a ... -
Android下的系统Intent大全
2012-08-23 08:58 9551.从google搜索内容 Intent intent = n ... -
Android makefile mk 重要参数解释及 通用模板编写
2012-08-10 09:04 17351. LOCAL_MODULE_TAGS解释: 控制此模块在什 ... -
手机的AP和BP是什么?
2012-08-06 15:56 1395手机的AP和BP根据上下文可以指代硬件和软件两种意思. 1) ... -
Android 上层界面到内核代码的完整的流程分析,以alarm为例子
2012-07-31 17:15 1338Alarm 调用流程,alarm的流程实现了从上层应用一直到下 ... -
彩信APN切换流程(framework)
2012-07-31 15:46 2054TransactionService之前的流程比较简单不在赘 ... -
我架设的程序员问答网站
2012-06-12 18:20 1209我架设了一个程序员问答网站,欢迎来http://program ... -
Android编译系统三
2012-06-15 10:33 1153android编译系统的makefile文件Android.m ... -
Android编译系统二
2012-06-08 14:46 2783一,Android编 译系统结构 android的编译文件 ...
相关推荐
在Android开发领域,`framework`是系统的核心框架层,它包含了许多系统服务和API,开发者通常不会直接修改这部分代码,但有时为了定制化或者优化,确实需要进行深度开发。本篇将详细介绍一种`framework`的快速部署...
2. `framework_intermediates.jar`:框架库,包含了Android系统的大部分服务和功能,如ActivityManager、ContentResolver等,是构建Android应用的核心组件。 3. `core_intermediates.jar`:基础库,提供了基本的Java...
总的来说,"Xposed-framework-v90-beat3-magiskmodule.zip"为用户提供了在Magisk环境下使用Xposed框架的能力,极大地拓展了Android设备的功能性和可玩性。然而,需要注意的是,这种系统级别的修改可能会带来稳定性...
在Android系统中,XPOSED框架是一个非常知名的模块化系统修改工具,它允许用户通过安装各种模块来扩展或改变系统的功能。然而,由于其涉及到系统底层的修改,因此在不同的Android版本上,XPOSED的安装和使用可能会...
在Android源码开发实战中,第19.21章节主要涵盖了Android系统中的一些核心概念和技术,这些都是深入理解和定制Android系统的关键。以下是对这一主题的详细解析: 1. **Android源码结构**:Android源码是开源的,由...
【Android美化教程】这篇教程主要涉及的是如何个性化定制Android手机的界面,特别是任务栏和状态栏,让手机更具个性化风格。 1. **状态栏字体颜色修改**: - 首先,你需要提取`system\app\systemui.apk`文件。 - ...
- 修改代码以支持开机动画功能。 - **开机音乐**: - 分析系统拷贝开机音乐资源的流程。 - 将所需的音乐资源复制到相应的位置。 - 实现开机音乐播放的代码逻辑。 - **盘符挂载**: - 定义overlay机制路径,...
如果没有root权限,大部分内置的主题更改功能仅限于应用内部,无法全局改变系统界面。 2. **下载主题zip文件**:寻找并下载你喜欢的Android主题zip文件。这些文件可以从各种主题论坛、应用市场或开发者网站获取。...
MTK切换开关机动画是针对基于MediaTek(MTK)芯片组的Android设备的一个功能,特别是在ICS(Ice Cream Sandwich)系统平台上实现的。MediaTek是一家知名的半导体公司,为各种智能设备提供芯片解决方案,包括智能手机...
本文将指导你如何在华为T8300手机上进行ROOT操作,删除预装的定制软件,并修改开机铃声和动画。这些步骤适合对Android系统有一定了解的新手,通过遵循教程,你可以优化你的设备,提升使用体验。 首先,让我们详细...
Xposed框架是一款强大的Android系统修改工具,它允许用户在不修改APK的情况下影响应用程序的运行方式,从而实现各种自定义功能。Xposed框架的核心在于它的模块系统,用户可以通过安装不同的Xposed模块来实现如系统...
Xposed框架是一款强大的Android系统修改工具,它允许用户在不修改APK的情况下影响应用程序的运行方式,从而实现个性化定制、功能增强或者优化性能等目的。Xposed基于Android系统的权限管理机制,需要设备已经获取...
Android系统允许用户进行深度定制,特别是对于已经root的设备,你可以修改系统级别的资源文件来改变界面外观。电池百分比显示通常是通过修改系统框架资源(framework-res.apk)来实现的。 教程步骤如下: 1. **...
PF4J 提供了一种灵活的方式来组织应用程序,使得新功能可以通过加载插件来动态添加,而无需修改核心代码。这种架构模式在大型软件系统和分布式应用中尤其常见,因为它可以提高代码的可维护性和可扩展性。 【描述】...
在进行美化过程中,修改系统文件如framework-res.apk和SystemUI.apk时,正确设置权限至关重要,否则可能导致系统无法正常启动,出现“无限重启”的问题。 **框架资源APK (framework-res.apk)** 是Android系统的核心...
- **framework部分更改**:在Android的框架层,可能需要对NetworkService、ConnectivityManager等关键服务进行扩展和调整,以支持4G网络通过以太网接口共享。这可能包括新的接口定义、服务注册、权限管理、数据流...
Xposed是一款强大的Android系统框架,它允许用户通过安装各种模块来改变系统的功能或者应用的行为,无需修改APK,因此在Android开发者和爱好者中备受青睐。本压缩包“Xposed.zip”提供了一个基础的Xposed监听模型,...
Xposed框架是一款在Android系统上运行的开源工具,它允许用户通过安装各种模块来修改系统的功能,无需root权限。在Android开发和个性化定制领域,Xposed框架有着广泛的用途,深受高级用户和开发者喜爱。"xposed-v89-...
在Android系统中,这些文件位于系统的资源文件夹内,通常是/system/framework/framework-res.apk或/system/app/SimIndicatorProvider.apk等。为了将这些樱花图标应用到设备上,你需要进行以下步骤: 1. 获取设备的...