- 博客(59)
- 资源 (5)
- 收藏
- 关注
原创 runtime resource overlay机制禁用启用主题包时relaunch Activity 原因
虽然重新启动 Activity 在用户体验上可能不如无感切换理想,但考虑到资源缓存和一致性、视图状态管理、性能和稳定性、兼容性和向后兼容性以及开发复杂性等因素,重新启动 Activity 是目前最可靠和通用的方法。Activity 和其视图组件的状态在运行时是动态变化的。如果不重启 Activity,可能需要手动管理每个视图组件的状态,这会增加开发复杂性和潜在的错误风险。如果在不重启 Activity 的情况下切换主题包,已缓存的资源不会自动更新,可能导致部分资源仍然使用旧的主题,从而出现不一致的情况。
2024-10-31 16:57:06
234
原创 apk右键一键签名方法
2 修改bat文件apksigner_path路径为自己的SDK路径,将签名文件命名为platform.keystore放在该文件夹内。3 运行reg文件添加注册表后,要签名的apk右键选择“cux”系统签名即可。一键cux系统签名添加到右键.reg 文件内容如下。1 修改reg文件最后一行,修改为自己的电脑路径。sign.bat文件内容如下。
2024-06-27 14:32:49
416
1
原创 Android Settings数据库
Settings.System.PUBLIC_SETTINGS中配置的key,有平台前面的应用才有权限设置,或者放在system/priv-app目录下。三方app也可以有读权限。
2024-06-27 14:24:29
207
原创 Android 多语言
说明:为一个值是代表当前值,多个值的时候如下如所示,代表可选语言(当前添加了5种,第一个值为当前语言,还可以点击添加语言继续添加)配置:frameworks/base/core/res/res/values/locale_config.xml。setLanguage("zh-Hans-CN") OK, 原生设置中显示简体中文(中国)setLanguage("zh-CN") OK, 原生设置中显示中文(中国)setLanguage("zh") OK, 原生设置中显示中文。
2024-05-23 18:47:22
938
原创 Android Studio 常见问题解决
控制台中文乱码Unsupported Java. Your build is currently configured to use Java 17.0.9 and Gradle 6.7.1.android studiogit没有显示Local Changes界面
2024-04-15 14:35:45
3551
2
原创 PackageManagerService中的方法名中的LI、LIF、LPw、LPr的含义
要想弄明白方法名中的LI、LIF、LPw、LPr的含义,需要先了解PackageManagerService内部使用的两个锁。因为LI、LIF、LPw、LPr中的L,指的是Lock,而后面跟的I和P指的是两个锁,I表示。LPw、LPr中的w表示writing,r表示reading。同步锁是细粒度的锁,只能短时间持有这个锁,因为争抢。同步锁,是指安装App的时候,对安装的处理要用。锁,可以让其他请求等待的时间短些。同步锁的时候,千万不要再请求。锁的请求很多,短时间持有。同步锁的时候,可以去请求。
2023-09-02 14:10:18
354
原创 查询电脑开关机时间
1、 点击【 win】+【R】键,打开运行窗口输入【eventvwr.msc】点击确定 点击确定。2、 打开【事件查看器】 -【Windows日志】 -【系统】,就可以看到开机 (当天第一个事 (当天第一个事 (当天第一个事 件运行时间)关机 (当天最后一个事件运行时间) 睡眠的时间了。...
2022-08-03 10:24:41
7839
1
原创 Android内存管理
前言 内存优化一直是 Android 开发中的一个非常重要的话题,他直接影响着我们 app 的性能表现。但这个话题涉及到的内容很广且都偏向底层,让很多开发者望而却步。同时,内存优化更加偏向于“经验知识”,需要在实际项目中去应用来学习。因而本文并不想深入到底层去讲内存优化的原理,而是着眼于宏观,聊聊 android 是如何分配和管理内存、在内存不足的时候系统会如何处理以及会对用户造成什么样的影响。Android 应用基于 JVM 语言进行开发,虽然 google 根据移动设备特点开发了自家的虚..
2022-05-07 14:30:21
1082
原创 android DMA buffer查看
执行 adb shell cat /sys/kernel/debug/dma_buf/dmaprocs |grep size会打印出如下信息,如com.app.systemapp (PID 23220) size: 11704 com.android.systemui (PID 1275) size: 8172com.app.systemapp (PID 23220) size: 1170411704为 11.704M
2022-05-06 10:48:31
1899
原创 Android Looper和Handler
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义的保存,而是将Message以链表的方式串联起
2022-02-12 15:29:14
236
原创 android 启动app event log
Time pid TAG Messag 01:20:33.418 951 wm_stack_created 22 01:20:33.421 951 wm_task_created [78,22] 01:20:33.422 951 wm_task_moved [78,0,2147483647] 01:20:33.423 951 am_focused_stack [0,22,0,reuseOrNewTa..
2022-02-09 17:04:59
2566
原创 APK体积优化
1.图片优化仅支持特定密度:图片资源仅保留mdpi或drawable-nodpi png、jpg转成webp推荐使用有损75%,视情况而定;2.Json文件压缩使用工具对json文件压缩;主要是删除空格和制表符等;对于大的json文件效果比较明显,几百kb的文件可以压缩为几十kb可使用在线json压缩工具3.去除无用的语言资源可只保留中文语言包android{defaultConfig{resConfigs...
2021-11-23 17:50:38
2434
1
原创 电脑钉钉颜色自定义
D:\Program Files (x86)\DingDing\main\current\uiresources\new\common\layout\mainframe\chatbase.xml<VBox name="chatinputvbox" sepheight="-3" sepimm="false" height="220" minheight="108" maxheight="320" inset="0,2,0,0" bordersmooth="true" bkcolor="#44C7..
2021-10-28 14:48:48
781
原创 adb 查看android activity 任务栈 /查看window层次
adb shell dumpsys activity activities |grep -E "Task id|Hist #|* TaskRecord"
2021-09-22 14:35:38
2052
原创 android9.0以上,framewrok.jar push到system/framework不起作用解决方案
android9.0 framewrok.jar push到system/framework不起作用,解决方式:adb push out/target/product/xxx/system/framework/boot-framework.vdex /system/framework/adb push out/target/product/xxx/system/framework/arm/boot-framework.art /system/framework/armadb push ou..
2021-09-16 17:37:49
798
原创 ServiceManager addService流程(源码修改版)
step1 创建aidl文件在源码frameworks/base/core/java/android/os/ 下面新增 一个ICCCService.aidl假设我们定义了5个函数,这些函数将会在SystemServer进程执行。内容如下// ICCCService.aidlpackage android.os;// Declare any non-default types here with import statementsinterface ICCCService ..
2021-09-02 09:15:50
1066
1
原创 bat 脚本 整理
@echo offset file=%~n1%~x1::set dirName=%file:~0,18%for /f "tokens=1 delims=." %%a in ("%file%") do set dirName=%%amkdir %dirName%start "D:\Program Files\Git\git-bash.exe" tar zxvf %file% -C ./%dirName%/
2021-06-16 13:52:22
455
原创 Android 远程调试 STF搭建
# 启动rethinkdb数据库$ sudo docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090# 启动adb$ sudo docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host so.
2021-06-04 10:19:16
378
原创 Linux 压缩解压命令
解包:ar p AAA.deb data.tar.gz | tar zxf -压缩:tar jcvf AAA.tar.bz2 DirName。压缩:tar zcvf AAA.tar.gz DirName。压缩:tar Zcvf AAA.tar.Z DirName。压缩:tar cvf AAA.tar DirName。解压:tar jxvf AAA.tar.bz2。解压:tar zxvf AAA.tar.gz。解压:tar jxvf AAA.tar.bz。解压:tar Zxvf AAA.tar.Z。
2021-05-29 15:14:41
141
1
原创 Linux 每天定时关机 设置
sudogedit etc/crontab输入密码后,在该文件插入一行50 02 * * * root /sbin/shutdown -h now保存后,系统会在每天02:50自动关机
2021-05-11 10:48:54
3168
转载 Java中Synchronized的用法
synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;4. 修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象。
2021-03-27 17:26:46
115
原创 java中Map遍历的四种方式
在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历。方法一:在for循环中使用entries实现Map的遍历:/*** 最常见也是大多数情况下用的最多的,一般在键值对都需要使用 */Map <String,String>map = new HashMap<String,String>();map.put("熊大", "棕色");map.pu
2021-03-14 22:22:14
428
原创 android 打开adb 调试
1.开发者模式中弹框“一律允许使用这台计算机进行调试”此弹框为Activity,所要打开的Activity为:/frameworks/base/core/res/res/values/config.xml <string name="config_customAdbPublicKeyConfirmationComponent" >com.android.systemui/com.android.systemui.usb.UsbDebuggingAc..
2021-01-23 16:01:27
1189
原创 Android RescueParty
在 Android 8.0 中,救援程序默认处于启用状态,其实现位于/services/core/java/com/android/server/RescueParty.java中。 在出现以下情况时,救援程序会收到有关启动和崩溃事件的信息,然后即会启动:system_server 在 5 分钟内重启 5 次以上。 永久性系统应用在 30 秒内崩溃 5 次以上。当检测到上述某种情况时,救援程序会将其上报给下一救援级别、处理与该级别相关联的任务,并让设备继续运行,看看能否恢复。清除或重置内容的程度..
2021-01-05 13:25:41
386
原创 Android rc 文件的使用
应用中添加使用rc0.在Android.mk同目录下新建文件haha.sh (文件名任意),执行shell操作,以下简单举例#!/bin/shrm -rf /system/etc/xxx1. 在Android.mk同目录下新建文件test.rc (文件名任意)含义:当设置系统属性persist.vendor.test.haha=2时,启动服务,执行shell脚本on property:persist.vendor.test.haha=2 start haha-sh...
2020-12-25 09:47:49
9019
原创 android shell查看文件系统大小,磁盘使用情况 df du
Androidadbshell中执行df查看文件系统的磁盘空间占用情况df或者df -h或者df -H其中 -h Human readable output (K=1024) -H Human readable output (k=1000)generic_x86_64:/system # df -HFilesystem Size Used Avail Use% Mounted on/dev/...
2020-12-18 13:35:38
8839
原创 Android 给应用添加默认权限
修改文件夹权限和所在组init.rc中on post-fs-data 时添加on post-fs-data symlink /mnt/vendor/test /mnt/test chown system system /mnt/test chmod 0775 /mnt/test给app添加默认权限1. product 的mk文件中添加PRODUCT_COPY_FILES += \/config/permission/default_permission_
2020-12-16 14:25:36
2053
原创 Android AOA链接(accessory & host)
目录AOA连接两台Android 设备1. 配件端(手机)1.1AndroidManifest 要求1.2 与配件通信1.3 终止通信2. 主机端(车机)2.1 API 概述2.2 AndroidManifest 要求2.3 启动Android设备(手机端)配件模式2.4 枚举设备2.5 获取与设备进行通信的权限2.6 与设备通信2.7 终止与设备通信3. 参考链接:AOA连接两台Android 设备Android 开放配件 (AOA) 支持功
2020-12-16 14:11:53
3653
2
原创 Android 蓝牙BLE扫描
1.声明蓝牙权限和定位权限<!--蓝牙权限--><uses-permission android:name="android.permission.BLUETOOTH"/><uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/><!-- LE Beacons位置相关权限--><uses-permission android:name="android.permiss
2020-12-16 13:48:22
3298
1
原创 AIDL 参数 in out inout区别
以客户端传递Person对象为例; 假设Person只包含一个String类型 name字段addPerson(in Person person) addPerson(out Person person) addPerson(inout Person person)区别:AIDL中的定向 tag 表示了在跨进程通信中数据的流向,其中 in 表示数据只能由客户端流向服务端, out 表示数据只能由服务端流向客户端,而 inout 则表示数据可在服务端与客户端之间双向流通如person对象传递到
2020-12-16 13:38:55
394
原创 android Selinux 之 platform_app,system_app,priv_app,untrusted_app
概念:平台签名:Android.mk中,定义LOCAL_CERTIFICATE := platformsystem权限:AndroidManifest.xml中声明 android:sharedUserId="android.uid.system" ,同时是平台签名分类:untrusted_app 第三方app,没有Android平台签名,没有system权限 platform_app 有android平台签名,没有system权限 system_app 有android平台签...
2020-12-15 09:50:06
7266
3
原创 Car-创建车机模拟器
1. SDK和模拟器准备Android SDK下载 Android P (28), 并将模拟器升级到最新(可以模拟更多的汽车数据)2. system image 准备源码全编生成编译产物,源码服务器目录 \android_org\out\target\product\generic_x86_64选择指定文件替换本地SDK中的image。我压缩备份了需要的文件,做了共享 车机模拟器image文件.7z, 解压替换本地SDK浏览器输入 file://BDJS-PF1LN39B/share或者文
2020-12-04 09:33:33
4094
2
原创 Android 常用adb 命令
adb command基本用法命令语法为命令指定目标设备启动/停止查看 adb 版本以 root 权限运行 adbd指定 adb server 的网络端口设备连接管理查询已连接设备/模拟器USB 连接无线连接(需要借助 USB 线)无线连接(无需借助 USB 线)应用管理查看应用列表所有应用系统应用第三方应用包名包含某字符串的应用安装 APK卸载应用清除应用数据与缓存查看前台 Activity查看正在运行的 Services查看应用详细信
2020-12-01 14:06:06
772
原创 Win10 文件夹以及文件夹内右键打开命令提示符
在windows 10中,文件夹以及文件夹内右键打开命令提示符方法如下新建文件,命名随意,为方便记忆,如 文件夹和文件夹内右键打开命令提示符.reg用文本方法打开文件输入以下内容保存双击执行该文件,确定添加该方式(可能会有提醒,放心执行,安全无公害~~)这样就可以在文件夹右键试试啦,是不是多了打开命令提示符窗口命令~Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Directory\Background\shell\..
2020-11-30 11:09:39
970
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人