- 博客(687)
- 收藏
- 关注
原创 Android 使用ninja加速编译的方法
因此我们可以使用google提供的一种快速编译方式:ninja,使用ninja编译,基本上十几秒就能快速编完一个模块,但必须注意ninja编译不会重新加载mk文件,故只适用于修改已存在的代码文件的情况,如果涉及到文件的增减、目录的重构就必须用mm/make重新编译之后,才能使用ninja快速编译新的修改。理论上所有的Makefile或者Android.mk中的module_name皆可使用ninja进行快速编译。mm 进到module目录进行编译,目录下要有Android.mk。(或者make -j24)
2025-04-07 11:51:22
360
原创 Android 10 开机广播动态注册失败
在 Android 10 及更高版本中,由于安全和隐私的考虑,应用程序的开机广播(BOOT_COMPLETED)会受到限制。这意味着应用程序无法通过开机广播来启动自己的后台服务或执行特定的操作。本文将详细介绍 Android 10 开机广播失败的原因,并提供解决方案和示例代码。
2025-03-27 16:19:04
379
原创 Android kill 进程的三种方式
这个方法在一个单独的线程中遍历一个包名列表,并尝试使用`ActivityManager`的`forceStopPackage`方法来停止每个包。1. **权限问题**:除非你的应用具有`KILL_BACKGROUND_PROCESSES`权限(这通常仅授予系统应用),否则`killProcess`方法可能不会起作用。2. **只能结束应用的一部分**:即使这个方法能够成功结束一个进程,它也可能只是该应用的一部分。1. **权限问题**:同样,除非你的应用具有相应的权限,否则这个方法可能不会起作用。
2025-03-27 10:54:51
420
原创 Android 获取屏幕锁定的相关信息:“无”,“滑动”,“PIN码”,“图案“,“密码“
通过LockPatternUtils类的isSecure方法和getKeyguardStoredPasswordQuality方法判断。11-02 14:37:34.748 4896 4896 D LockPatternUtilsHelp: PIN码 安全模式。11-02 14:38:10.931 4896 4896 D LockPatternUtilsHelp: 密码 安全模式。isSecure方法和!三 如何判断当前锁定方式是否为"安全密码"锁屏?二 如何判断当前锁定方式是否为"滑动"?
2025-03-20 13:46:37
286
原创 Android Binder权限检查之clearCallingIdentity
UID和PID是IPCThreadState的成员变量, 都是32位的int型数据,通过移位操作,将UID和PID的信息保存到token,其中高32位保存UID,低32位保存PID。该方法一般是system_server进程的子线程调用远程进程时使用,而attachApplicationLocked方法则是在同一个线程中,故需要在调用该方法前清空远程调用者的uid和pid,调用结束后恢复远程调用者的uid和pid。相信到此,大都能明白这两个方法的作用,缺一不可,而且要成对出现。//博主博客也很优秀。
2025-03-19 16:48:50
923
原创 ServiceManager.getService
方法是 Android 系统中用于获取系统服务的一个关键方法。ServiceManager 是一个系统级别的服务管理器,负责注册和管理系统中的各种服务。通过调用方法,可以获取指定名称的服务的 Binder 对象,进而实现跨进程通信。
2025-03-19 16:44:37
331
原创 Android13默认开启电池百分比数字显示Framework
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/a315823806/article/details/141928001。通过,0,1 的切换,可以修改默认显示电池数字百分比,或不显示电池数字百分比的效果。修改2个地方,一个是Setting,一个是SystemUI显示。通过查阅Framework代码。终于找到了如何默认显示。查了很多平台,就是没有Android13的。有个小需求,需要实现。
2025-03-14 10:49:11
234
原创 setting添加key后编译报错
使用@hide或者 m api-stubs-docs-non-updatable-update-current-api。
2025-02-28 14:44:48
102
原创 android14修改默认锁屏方式为无
我们还看到disabledByDefault,顾名思义就是默认值了,这个值由com.android.internal.R.bool.config_disableLockscreenByDefault决定,这个值位于frameworks\base\core\res\res\values\config.xml中的config_disableLockscreenByDefault。android14修改默认休眠时间为永不休眠后,依然会很快就会息屏进入休眠。解锁后或者设置系统锁屏方式为无以后,就不会再休眠了。
2025-02-28 14:44:35
619
原创 android 中调用接口发送短信
- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。-- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理 即,这个意图包装了短信发送状态的信息。-- destinationAddress:目标电话号码。-- scAddress:短信中心号码,测试可以不填。
2025-02-28 14:43:18
937
原创 cannot find symbol config_shutdownBatteryLowTemperature
解决方法: 在frameworks\base\core\res\res\values\symbols.xml增加标记。
2025-02-27 17:55:46
80
原创 MasterSwitchPreference的使用
首先 和 SwitchPreference的区别是:switch和preference 事件分离。
2025-02-19 16:53:11
179
原创 Android日志分类及查看过滤
adb logcat ActivityManager:I *:S //仅输出标记为“ActivityManager”且优先级大于等于“Info”的日志。adb logcat -b event -v time > e://event.log (-v time表示在log中加入每条log发生的时间)adb logcat -b选项是可以复用的,因此我们抓取所有Log的命令就是复用了-b选项。kernel log属于Linux内核的log ,可以通过读取/proc/kmsg或者通过串口来抓取。
2025-02-19 13:47:19
380
原创 Android10不显示权限申请界面
然后找到packages\apps\PermissionController\src\com\android\permissioncontroller\permission\ui\handheld\ReviewPermissionsFragment.java这个文件。这个界面是在packageinstaller模块中的,一般是放在package\apps\目录下;特殊一点的也会放在源码下的platform\packages\apps\目录下。
2025-01-22 17:12:44
141
原创 New setting keys are not allowed; use getters/setters in relevant manager class [NoSettingsProvider]
编译提示报错:frameworks/base/core/java/android/provider/Settings.java:4996: error: New setting keys are not allowed (Field: RINGTONE2);在定义key的地方加上**@SuppressLint(“NoSettingsProvider”)**就可以了。Android 中 在Setting.java中添加 new setting key。按照这个格式添加就可以了。
2025-01-14 14:19:02
173
原创 添加系统级res资源包
在framework/base/core/下新建名为“res_custemer”文件夹,结构如下:编写Android.mk/Android.bp文件endif"LOCAL_AAPT_FLAGS := -x3 " value 的定义需要与 "frameworks\base\libs\androidfw\ResourceTypes.cpp"中 所定义的resource ID 一致//////////],deps: ["soong",],srcs: [],
2025-01-07 16:51:04
484
原创 try ‘jack-diagnose‘ or see Jack server log
----------------------------------------分割线-------------------------------------Android 7.1系统使用 jack-server 作为 Java 代码编译器,同一个端口号不能多个用户同时使用,所以不用用户要配置不同的端口号。解决办法是在主目录下执行下面执行,会自动生成 jack-report.*****.zip 日志。解决办法是需要同时下面两个文件中的 port,而且两个文件中的那个的 port 要一致,
2024-12-25 16:52:36
554
原创 Android.bp java_library_static srcs配置
报错:error: frameworks/base/services/core/Android.bp:99:1: module "services.core.unboosted" variant "android_common": module source path "frameworks/base/services/core/server_ext" does not exist。对于模块名称,前面加了:后,会在全局找该模块,并依赖,如果不加冒号,默认在当前路径下查找。
2024-12-23 16:24:05
430
原创 ERROR: ProtoLog viewer config is stale. To update it, run
【代码】ERROR: ProtoLog viewer config is stale. To update it, run。
2024-12-23 16:06:10
180
原创 invalid package ID 0x0a. Must be in the range 0x7f-0xff
o path 指定输出文件路径,若是不设置--dir directory,只是传了单个文件的path(path的需要严格按照这个格式path/resource-type[-config]/file存放,否则编译时会提示“bad resource path”),那么-o 后面的path设置为目录,若是设置--dir,则不必要再传入单个文件的path,同时-o后面的path应设置为文件名,比如:res.zip之类。当然,此时生成的apk文件并不包含dex文件,也没有签名。
2024-12-23 15:47:46
486
原创 framework下如何引入vendor的framework模块
进入framework路径下修改Android.bp添加vendor下framework模块的名称即可。
2024-12-23 11:53:21
138
原创 android 菜单不显示auto time zone菜单
打印 日志发现,capability == CAPABILITY_NOT_SUPPORTED。查看哪里设置了CAPABILITY_NOT_SUPPORTED。
2024-10-08 15:51:31
455
原创 Android中使用System的setProperty()和getProperty()方法设置全局代理
1.在某个APP中setProperty的值,在其他APP中getProperty获取不到(大概由于Android中每个APP都是一个独立的Dalvik);System的Property属性很类似Android的sharedpreferences,都可以用来保存参数值。2.在某个APP中setProperty的值,即使退出后也仍然存在,不经卸载直接重装也仍会存在,除非卸。Java运行时环境规范供应商。Java运行时环境规范版本。Java运行时环境规范名称。Java运行时环境供应商。Java运行时环境版本。
2024-09-27 18:03:04
616
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人