android 常用查看手机信息命名

31 篇文章 1 订阅

1. adb shell wm size

Physical size: 1600x480

2. adb shell wm density

Physical density: 160

3:打开window 动态调试开关

dumpsys window -d enable a

AMS log开关命令:adb shell dumpsys activity log x on 
user版本请如下打开AMS log开关:
/frameworks/base/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java
static boolean DEBUG_ALL = false; //置为true

4:readelf  -t   fingerprint.default.so  读取elf文件段信息

     readelf --string-dump=".sunwave.version" fingerprint.default.so     从版本段获取版本信息

5:打开与关闭mtklog

adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name start --ei cmd_target 7
adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name stop --ei cmd_target 7 

userdebug 抓systrace, 需要打开mtklog

adb shell aee -d coreon
adb shell aee -d directon
adb reboot

启动mtklog    am start  com.mediatek.mtklogger/.MainActivity

启动sprd log am start com.sprd.engineermode/.EngineerModeActivity

外销开机向导是有紧急拨号盘的,进入紧急拨号盘按*#812#可以跳过开机向导,状态栏以及导航键也可以正常使用

am start com.oppo.logkit/.main.OppoLogkitLoggingActivity

*#800#

*#8778#  打开恢复出厂设置

7、参考settings数据库

settings list system|grep bri

8、关闭odex 编译

 build/core/dex_preopt.mk
# The default value for LOCAL_DEX_PREOPT

ifeq ($(TARGET_BUILD_VARIANT),eng)
    DEX_PREOPT_DEFAULT ?= false
else

    DEX_PREOPT_DEFAULT ?= true
endif

9、打印函数调用堆栈

                // Binder.clearCallingIdentity();
                Slog.d(TAG, "_callingPid=" + Binder.getCallingPid() + ", " + "callingUid=" + Binder.getCallingUid());
                //Binder.getCallingPid();
                // Binder.getCallingUid();
                // Binder.clearCallingIdentity();
                // Binder.restoreCallingIdentity();
        
                Throwable throwable = new Throwable();
                StackTraceElement[] stackElements = throwable.getStackTrace();
        
                if (null != stackElements) {
                    for (int i = 0; i < stackElements.length; i++) {
                        String szMethodName = stackElements[i].getMethodName();
                        Slog.d(TAG, "dual parsePackageSplitNames: szMethodName = " + szMethodName);
                    }

                }

Slog.wtf(TAG, "showBouncer ", new Throwable());

Slog.d(TAG,"passwordToHash = " + password + ", caller = " + Debug.getCallers(9));

10、查看event 事件

 getevent -l /dev/input/event4

11、列出系统有图标应用

cmd package  query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x00000010

12、截屏

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png 

13、Ext4 文件挂载

simg2img  $1  $1.ext4

mkdir tmp

sudo mount -t ext4 -o loop  $1.ext4 tmp

mount o remount,rw custpack

14、

adb shell

    while true;do date >> /sdcard/mtklog/dumpsys_meminfo.txt;dumpsys meminfo >> /sdcard/mtklog/dumpsys_meminfo.txt;sleep 5;done

14、设置屏幕背光不熄灭的方法

设置屏幕背光不熄灭的方法_jaygodlike的博客-CSDN博客

15、根据pid 获取进程名

再ams 中增加binder 接口再调用

    public String[] getPackagesFromPid(int pid) {
        ProcessRecord pr = null;
        synchronized (mPidsSelfLocked) {
            pr = mPidsSelfLocked.get(pid);
        }
        return (pr != null) ? pr.getPackageList() : null;
    }

14、

netstat   -ano  | findstr 5037
tasklist | findstr    6560


taskkill /f /t /im process_name
taskkill  /f  /pid  2612

setprop service.adb.tcp.port 5555

adb nodaemon server  ####查看5037 是否被占用
 

15、

打开测试机状态栏上秒的功能

adb shell pm enable com.android.systemui/com.android.systemui.tuner.TunerActivity

adb shell am start -n com.android.systemui/com.android.systemui.tuner.TunerActivity

16、手机解锁:

adb reboot bootloader
fastboot flashing unlock
fastboot reboot
adb root
adb disable-verity
adb reboot
adb root
adb remount

17、内存

android 内存管理
prorank
memtest  坏点检测、内存填充

malloc_debug
memleak  c/c++  内存泄漏
踩内存 asan


Java的四种引用

强引用,永远都不会被回收的内存,程序宁愿跑出oom也不回回收
软引用,当内存不足时会进行回收(实际回收时会对内存分类标记,GC第一次运行会按优先级回收弱引用和虚引用,这时若内存还是不足,则GC会再执行一次,将软引用回收)
弱引用,GC一开始工作就回回收
虚引用,任何时候都有可能被回收

java 静态域持有对象的应用、java 内部非静态类持有外部类引用,导致对象泄漏

内存优化:开机内存 =》  压缩(zram)、启动控制、应用占用内存
                运行时内存 =》 内存压缩、内存泄漏(java/native)、内存碎片管理

1、zram 
2、unmovable 
3、java heap 参数
4、lmk uevent事件上报(lmk native 泄漏不会杀,这样就可以java统计占内存高给到底层杀掉对应native service)
5、微信加载dex 文件


内存异常
用户态内核态内存异常种类
应用内存泄漏、系统内存泄漏

1、使用未初始化内存
栈上变量、全局变量、局部静态变量没有初始化
2、使用释放的内存如uaf
已经释放堆内存、返回的局部变量、内存踩踏、null、内核中已经释放的内存(page、vmalloc、slab 等)
3、越界
栈溢出、堆溢出、全局变量buffer 溢出、数组越界、数据类型强制转换导致越界访问
4、内存泄漏
进程内存泄漏:Native heap 内存泄漏,如malloc 、new 、brk 、mmap;java heap 泄漏
系统内存泄漏:slab 内存泄漏、vmalloc内存泄漏、alloc_page 内存泄漏
oom 虚拟内存、物理内存

内存异常检测:
未初始化内存、使用释放的内存、越界访问类型:
用户态:uasan、hwasan、gwp-asan(native内存,集成到app)
内核态:kasan、slub_debug

内存泄漏:
用户态 1、 LeakCannary/AndroidProfile、mat
           2、malloc_debug、mmap_debug(native)
内核态slub_debug、slubtrace
          vmallocinfo
          page_owner(stackdepot)
          kmemleak

内存管理关键技术
内存管理性能评估
内存优化
内存分配
ION cache pool 、mempool 短时间分配次数多,分配慢,3阶内存使用vmalloc
内存碎片
kernel stack ,2阶内存,不可以移动页污染大内存快;可移动页移动耗时;
减少大内存分配次数,专用slab
内存压缩、内存回收
在一步kswapd 和 同步direct_reclaim 时会触发shrink_node 进行匿名、shmem 压缩到zram
kswapd 场景更深度的内存压缩,direct_reclaim 更快的回收,多回收文件页,kswap回收匿名也较文件页慢

文件缓存
在低内存时手机卡顿,trace 上面很多blockio 在wait_on_page_bit_common,这个时候filecache 被回收了,需要重新加载,从而文件‘颠簸’
后台查杀

malloc_debug 日志解析

google提供了development/scripts/native_heapdump_viewer.py脚本对kill -47抓起的数据进行解析(由于涉及到addr2line等工具和数据,需要测试机器对应版本的编译结果支持)

18、

Snapdragon Profiler - Qualcomm Developer Network

18、

input 传递

https://mp.weixin.qq.com/s/8WR6YfnJrQmRWTbY4s0b7Q

LatencyTracker.cpp

19、知识库

https://androidperformance.com/2018/05/07/Android-performance-optimization-skills-and-tools/

19、高通开源代码网站

有许多厂商的源码库会放在CodeAUrora上 ,例如NXP

高通平台开源代码下载

codeaurora · GitHub Topics · GitHub

目前在下面git 上

Explore projects · GitLab

20、linux   torvalds github

linux/mm at master · torvalds/linux (github.com)

https://github.com/torvalds/linux/blob/master/mm

18、android 网址

https://developer.android.google.cn                          -----各个android 版本介绍

Android 开源项目  |  Android Open Source Project

https://source.android.com                                      ------源码

19、

google 提交case 查看:

http://code.google.com/p/android/issues/list

google patch 提交查看

https://android-review.googlesource.comj

20、

Android 经典

android :: 郑欢的学习总结

Linux 经典

内存块 · Linux ­Insides­中文

数学函数

Desmos | 免费领略数学之美

cubic-bezier.com

oppo-source · GitHub

apple

Optimizing ProMotion refresh rates for iPhone 13 Pro and iPad Pro | Apple Developer Documentation

iOS 高刷屏监控 + 优化:从理论到实践全面解析

流程图

frameboost3.0函数调用关系| ProcessOn免费在线作图,在线流程图,在线思维导图

Coverity   sonar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值