- 博客(145)
- 资源 (27)
- 收藏
- 关注
原创 IO统计工具blockStatus.py源码
process_sheet.cell(row=row_idx+7, column=1, value="I/O大小分布(KB)")process_sheet.cell(row=row_idx+3, column=1, value="平均排队时间(ms)")process_sheet.cell(row=row_idx+4, column=1, value="平均硬件时间(ms)")process_sheet.cell(row=row_idx+5, column=1, value="平均总时间(ms)")
2025-07-08 21:55:22
510
原创 旋转屏幕优化
从google原生算法,可以知道其有2个比较大的缺陷:1) 通过重力传感器传来的x,y,z轴的加速度合成之后只有一个垂直往下的加速度,如果此时用户在别的方向上有加速度,那么通过反余弦、反正切等计算的角度就会不准确,原始的角度计算有问题,就谈不上识别正确的方向了。而google在旋转角度上,并未用代码进行修正。2) google拿到方向信息之后,去干扰采取的措施是延迟300-500ms,等彻底没有干扰的时候再进行方向改变,这个方案很保守。
2025-07-08 21:13:07
839
原创 旋转屏幕的整体流程
当用户旋转手机屏幕,到完成屏幕旋转,进行屏幕旋转的过程,主要涉及系统的多个重要组件和服务。手动点击屏幕旋转按钮后,到完成屏幕旋转,中间经历了多个关键流程。屏幕旋转算法部分位于自动旋转中的数据采集和屏幕方向计算。
2025-07-08 21:11:35
594
原创 原生屏幕旋转算法(AccelSensor)
即各个方向的范围如下:0-->(0,45)&(337.5,360),1-->(67.5,135),2-->(157.5,225),3-->(247.5,315)逆时针相邻意味着设备的当前旋转角度 currentRotation 和提议的旋转角度 rotation 之间的关系是旋转角度相差1个90度单位,经过两者连线所围绕的方向形成了顺时针方向。判断提议的旋转角度和方向角度是否可以接受。//0-360度减去22.5度,即(0,1,2,3)-->(-22.5,67.5,157.5,247.5)
2025-07-08 21:09:32
577
原创 屏幕旋转属性值
android:screenOrientation属性对应值。android:screenOrientation属性对应值。属性来设置,也可以在Activity中通过。在manifest文件中通过。
2025-07-08 20:42:50
768
原创 屏幕旋转流程
(1) sensor感应 --> WMS.updateRotation(false /* alwaysSendConfiguration */, false /* forceRelayout */);[](/data/nishome/td/jimeng.zhang/Desktop/屏幕旋转/start_screen_freeze.png)[](/data/nishome/td/jimeng.zhang/Desktop/屏幕旋转/windowstate_onConfiguration.png)
2025-07-08 20:41:15
517
原创 IO器件性能评估
b,573.8ms的io时长是 573.8 * 29.97%=171.96ms。c,按比例缩放io时间 = 171.96 *(500/300)=286.6ms。比如应用启动过程中的。4,将预估后的增加io时间加到原来操作时间,将此作为此项操作预估时间。3,根据规格书读写能力数据比率,对io占用时间进行预估(等比放大);a,io时长187ms,占比 187/624 = 29.97%2,针对应用操作过程进行分析,识别出过程中io占用时间;1,对比UFS、eMMC的规格书标注的io读写能力。
2025-07-08 10:19:01
219
原创 调整水位来调节zoneinfo实例
(high-low=(10841+11493-5995-6356)*8/1024=77M 当前已偏大,需要减小到60)通过zoneinfo工具(excle文档),计算得出3buffer约30M,理想是处于3buffer左右。(TGuard水位是由watermark和lmkd决定,当前约在820M)(软重启,关闭所有程序,更新配置文件。(设置cache进程数,影响驻留率)
2025-07-08 10:17:57
229
原创 dexopt学习待整理
除此之外在上图还可以看到 Dalvik 虚拟机中有使用 JIT 编译器,也就是说其也能将程序运行的热点 java 字节码编译成本地 code 执行,所以其与 Art 虚拟机还是有区别的。答:这道题目如果想深入理解就需要去看源码了,不过对于应用层开发来说有个原理上的大致理解也是必须掌握的,具体区别可用如下图概述(图片来自网络)。通过上图可以很明显的看出 dexopt 与 dex2oat 的区别,前者针对 Dalvik 虚拟机,后者针对 Art 虚拟机。表示优化完成,总耗时248.681s,启动了4个线程。
2025-07-08 10:16:51
363
原创 iowait过高问题查找及解决方案
Workload表明当前io的loading,Read Throughput=57344 kB/s和Write Throughput=8673 kB/s 分别代表eMMC的读写速度,size: 5021696 bytes代表传输的数据量。源代码位于:/troms_platforms_master_na/frameworks/base/core/java/com/android/internal/os/ProcessCpuTracker.java。2)调整内存空间,减少回收,延长文件存活时间。
2025-07-08 10:15:59
588
原创 Linux 内存管理:缺页异常的几种原因
使得应用程序认为自己有足够可用的连续内存空间,而实际上,它不仅通常被分割为多个物理内存碎片,而且还有部分存在于磁盘上,每次缺页中断时才调入内存。对这种情况,需要将内核页目录表、页表中对应的映射关系拷贝到进程的页目录表和页表中。给定一个线性地址,MMU 通过页目录表、页表的转换,找到对应的物理地址。在这个过程中,如果因某种原因导致无法访问到最终的物理内存单元,CPU 会产生一次缺页异常,从而进入缺页异常处理。1、导致缺页异常的线性地址根本不在进程的“虚存区间”中,段错误。例如页面是只读的,而你想写。
2025-07-08 10:13:50
385
原创 LMK学习待整理
LowMemoryKiller机制分析 - 简书 (jianshu.com)Android LowMemoryKiller 原理分析_51CTO博客_android low memory killer
2025-07-08 10:13:03
176
原创 原生冻结进程分析(U)
进程的OOM_ADJ (Out of Memory Adjustment)值除了决定系统内存不足的时候是否回收该进程,进程冻结策略也是依赖它去计算的。总结一下就是,如果进程的oom adj大于CACHED_APP_MIN_ADJ,就会启动一个10分钟的定时器,在10分钟之内如果进程的oom adj一直没有变回小于CACHED_APP_MIN_ADJ就会冻结进程。进程的执行被暂停:冻结的进程会被暂停,其所有线程的执行将被停止,包括应用程序的主线程以及任何后台线程。提供先进的推理,复杂的指令,更多的创造力。
2024-09-02 06:54:55
1083
原创 Activity的启动流程(AndroidU)
启动有冷热温三种。冷启动:从无到有走完整个启动流程。一般是应用第一次启动。热启动:有应用进程无相关数据,需要重新加载,比如冻结。一般是从多任务进入。温启动:有进程有数据。一般是退出后再次进入。启动流程如下:1.启动准备应用启动是从应用Activity的this.startActivity开始,调用父类Acitivity.startActivity.: /这两个方法都是为了启动新的 Activity,但它们的差别在于第二个方法允许传入额外的启动选项。第一个方法是第二个方法的简化版本,默认将。
2024-08-24 19:36:41
1202
原创 Zram记录
device中加copyfile添加编译fstab。未打开zram时,totalswap为0。init.rc中配置swapon-all。Zram机制的实现,依靠swap机制。fstab中配置zramsize。zram验证生效的顺序。
2024-08-23 08:52:26
549
原创 IO器件性能评估
b,573.8ms的io时长是 573.8 * 29.97%=171.96ms。c,按比例缩放io时间 = 171.96 *(500/300)=286.6ms。比如应用启动过程中的。4,将预估后的增加io时间加到原来操作时间,将此作为此项操作预估时间。3,根据规格书读写能力数据比率,对io占用时间进行预估(等比放大);a,io时长187ms,占比 187/624 = 29.97%2,针对应用操作过程进行分析,识别出过程中io占用时间;1,对比UFS、eMMC的规格书标注的io读写能力。
2024-08-19 17:07:20
255
原创 ADB-DROM
adb shell "echo 0 > /sys/devices/platform/10012000.dvfsrc/helio-dvfsrc/dvfsrc_force_vcore_dvfs_opp" # -1 无限制,0 最大。
2024-08-19 17:04:21
372
原创 CPU绑核
通过CPU亲和性的概念可以提高线程的运行效率,比如由于CPU存在缓存机制,通过CPU亲和性(CPU Affinity)让同一个线程被重新调度时,尽量调度到同一个处理器上,这样就可以可以避免不必要的 Cache Miss。另一种情况,比如对于一组相同的任务,它们需要访问的内存大部分是相同的,如果控制这组任务调度在相同的CPU上,也可以共享相同的cache,从而提高程序的访问效率。如果进程只在某个CPU上执行,可以避免进程在一个CPU上停止执行,然后在不同的CPU上重新执行时发生的缓存无效而引起的性能成本。
2024-08-19 16:57:27
1185
原创 cpu管理
4、intellidemand智能按需调节模式:可根据GPU使用情况来针对性调节cpu频率,GPU负载高时,比如运行游戏和测试的时候,cpu频率会迅速升至最高,这时的调节模式类似于ondemand,当GPU空闲时则会自动限制cpu最高频率,更加省电。2、ondemand按需模式:官方及xray内核默认为此项调节模式,顾名思义,按需调节cpu频率,不操作手机的时候控制在最低频率,滑屏或进入应用后会迅速提升至最高频率,当空闲时迅速降低频率,性能较稳定,但因频率变化幅度过大,省电方面只有一般的水平;
2024-08-19 09:33:24
879
原创 原生HighCPU机制
遍历LRU list所有进程,针对优先级低于PROCESS_STATE_HOME的进程,根据进程状态改变距离现在的时间,设置不同的限制阈值,然后调用updateAppProcessCpuTimeLPr继续检查流程。通过ProcessProfileRecord,计算出进程已经使用CPU的时间,调用checkExcessivePowerUsageLPr函数来检查是否超过限制阈值,如果超过则杀进程。//如果CPU使用时间超过阈值(CPU使用时间除以距离上次检查的时间,cpuLimit可以看做百分比)
2024-08-15 00:19:23
997
原创 MobaXterm使用
说明:这是在当前用户生效(我也没有sudo密码),如不存在文件会自动创建,保存后打开vi即生效。1.默认打开的vi 不带行号。
2024-07-13 16:02:09
507
原创 Linux常用命令
ssh-keygen -t rsa -C "主机名"主要使用在编译服务器中,一般还有samb一起使用。3.copy文件:copy/rcopy。在当前目录查找文件并写入文件。
2024-06-29 20:51:30
347
原创 adb常用命令
方法2:停止APP进程,并且清除这个APP进程产生的所有数据,相当于reset。# 方法1:强制停止APP进程,不会清除APP进程在系统中产生的数据。# 查看prop文件中watermark属性值。# 导入build.prop文件(见文章)# speed-profile优化。# Top列表activity。# 前台activity。# 查看Free RAM。# 所有应用编译状态。# 查看启动应用入口。
2024-05-12 13:26:12
921
原创 adb-cpu常用命令
adb shell "echo powersave > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor" # 第1簇。adb shell "echo powersave > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor" # 第1簇。adb shell "cat /proc/cpuhvfs/C0_opp_idx" # 大核。
2024-05-12 13:25:38
1002
原创 adb-GPU常用命令
adb shell "echo 0 > /proc/gpufreqv2/fix_target_opp_index" # -1 无限制,0 最高频。# 当前频率、档位、负载。
2024-05-12 13:24:33
1118
原创 adb-DRAM常用命令
adb shell "echo 0 > /sys/devices/platform/10012000.dvfsrc/helio-dvfsrc/dvfsrc_force_vcore_dvfs_opp" # -1 无限制,0 最大。adb shell "echo 0 > /sys/kernel/helio-dvfsrc/dvfsrc_force_vcore_dvfs_opp" # -1 无限制,0 最大。
2024-05-12 13:23:45
791
【鸿祥上下拉刷新--框架来着git pulltorefresh】
2015-12-14
umeng社会化分享之QQ和QQ空间
2016-01-10
umeng统计和更新SDK技术测评
2016-01-03
【招财进宝手势密码】Fund_Gesture_Lock
2015-12-14
百度地图中心之坑
2016-08-24
自动填写短信验证码
2016-11-29
umeng_thirdlog.zip
2016-01-16
百度地图v3.6.1接入1--基本地图功能.rar
2015-12-16
umeng第三方登陆技术demo
2016-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人