自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (5)
  • 收藏
  • 关注

原创 CSDN博客列表

文章目录Stability(稳定性)performance(性能)Boot up && shutdown(开关机)Debug相关SystemUIAMSWMSAndroid build(编译)BinderInputSensorStability(稳定性)Android Watchdog机制介绍与分析Native Crash基本分析ANR基本分析Android...

2020-03-05 11:16:33 272

原创 Android Low Storage机制(DeviceStorageMonitorService)

文章目录1.low storage简介(DeviceStorageMonitorService)2. DeviceStorageMonitorService代码介绍2.1 服务初始化2.2 DeviceStorageMonitorInternal提供的接口2.3 check() /data分区3 监听lowStorage广播1.low storage简介(DeviceStorageMonitorService)Device storage monitor module is composed of de

2022-04-28 15:46:59 1510

原创 Android EventLog打印位置

​Java打印 第一种notification_visibility转为writeNoticationVisibility编译时候会解析生成文件EventLogTags.java,然后代码再去调用以实现添加EventLog可以在out目录下执行命令 find -name EventLogTags.java来找对应目录生成的EventLogTags.java@/frameworks/base/services/core/java/com/android/server/EventLogTags.log

2022-04-27 11:41:00 718

原创 Android流程图

ccc

2022-04-06 16:42:16 2487

原创 AndroidR Logd原理

文章目录0. 相关文件目录1. ALOGD写log流程1.1 ALOGD打印log,传入可变参数1.2 logdw socket写log1.3 pmsg写入 /dev/pmsg02. logcat读取流程2.1 logcat调用liblog流程2.2 logformat_ 申请和释放2.3 logger_list申请和释放2.4 android_logger_open打开设备log2.5 android_logger_list_read获取buffer2.6 android_log_printLogLine

2022-02-07 16:23:00 2811

原创 Android Https双向SSL认证(可用)

2021-04-23 17:26:20 269

原创 Android Input Log

打开LOG开关#inputFlinger负责事件读取分发frameworks\native\services\inputflinger\InputDispatcher.cppframeworks/native/services/inputflinger/InputReader.cppframeworks/native/services/inputflinger/Eventhub.cpp### input库frameworks\native\libs\input\InputTransport.c

2021-01-29 15:23:28 2146

原创 Android Q及之后 lmkd原理

在Android O时,lmkd只是起中转作用1.ams的函数updateOomLevels通过socket把minfree和adj数据通过socket写向lmkd.lmkd判断是kernel的lowmemorykiller时,就把数据写向节点/sys/module/lowmemorykiller/parameters/adj和/sys/module/lowmemorykiller/parameters/minfree2.ams setOomAdj设置当前进程adj值(/proc/pid/adj),s

2021-01-12 15:43:23 1079 1

原创 Android O lowmemorykiller原理解析

文章目录1. LowmemoryKiller介绍1.1 为什么引入LowmemoryKiller?1.2 LMK基本原理?1.3 lmkd整体流程1.4. 查看进程adj值已经进程对应的类型2. AMS怎么调整adj和内存值minFree2.1 AMS设置minfree2.2 什么时候ams会设置lmkd的阈值3. AMS设置当前进程adj值(/proc/pid/adj)4. lmkd接收消息原理5. lmkd kernel监测系统内存1. LowmemoryKiller介绍1.1 为什么引入Lowme

2021-01-12 15:42:53 963

原创 Android Input和SendEvent脚本命令模拟连续滑动事件

文章目录1. Input命令滑动事件1.1 input命令使用1.2 input命令源码解析2. SendEvent滑动事件3. shell脚本连续发送滑动事件4. python脚本连续发送滑动事件5. push shell到机器里6. 问题6.1. sendEvent命令滑动卡顿6.2. sendevent耗时太久6.3. Input缺点1. Input命令滑动事件1.1 input命令使用input --help查询使用130|msm8996_gvmq:/ # input --helpErro

2020-12-22 17:37:00 6128 9

原创 Android 时间同步服务NetworkTimeUpdateService

文章目录NTP介绍NtpTrustedTime获取时间SntpClient具体请求时间NetworkTimeUpdateService启动和时间更新NetworkTimeUpdateService启动1. 定时更新2. AUTO_TIME变化发送Message2. 网络变化更新时间SystemClock.setCurrentTimeMillis设置时间NTP介绍NTP:网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器

2020-11-11 16:35:26 2105

原创 Android Watchdog介绍和实例分析

文章目录1. Watchdog是什么?2. Watchdog代码基本介绍3. 原因分析4. 实例分析例1:SystemServer Binder耗尽例2:IO阻塞例3:Thread.sleep阻塞1. Watchdog是什么?Android Watchdog主要是检测system server重要线程状态(main,android io,android display ,Activitymanager,android fg,android bg等线程 )的一种机制。发生Watchdog时会触发Andro

2020-08-17 16:57:20 2063

原创 ANR实例

文章目录什么是ANR?常见的原因1. 主线程耗时Blocked2. Binder耗时Blocked3. 被子线程同步锁block4. Binder线程耗尽什么是ANR?以下四个条件都可以造成ANR发生:InputDispatching Timeout:5秒内无法响应屏幕触摸事件或键盘输入事件BroadcastQueue Timeout :在执行前台广播(BroadcastReceiver)的onReceive()函数时10秒没有处理完成,后台为60秒。Service Timeout :前台服务20

2020-08-17 16:56:32 921

原创 ANR trace详解

文章目录1. Trace pattern2. 解释3. 关键词对照1. Trace pattern1."Signal Catcher" daemon prio=5 tid=3 Runnable2. | group="system" sCount=0 dsCount=0 obj=0x32c050d0 self=0x7f97dd14003. | sysTid=9729 nice=0 cgrp=default sched=0/0 handle=0x7fa200e4504. | state=R sc

2020-08-17 16:55:58 3598

原创 Android 重启类型

文章目录1. system_server 重启2. NETD重启3. surfaceFlinger重启4. zygote 重启5. init 重启1. system_server 重启systemserver重启原理是因为zygote进程,监视所有子进程,systemserver died就会触发,zygote kill self@frameworks/base/core/jni/com_android_internal_os_Zygote.cpp//pid=-1 等待任何子进程,此时的waitp

2020-08-17 16:55:20 653

原创 Bugreport原理

文章目录1. bugreport2. bugreportz3. adb bugreport4. dumpstate1. bugreport2. bugreportz3. adb bugreport4. dumpstate1. bugreport编译到/system/bin/bugreport@frameworks/native/cmds/bugreport/Android.bpcc_binary { name: "bugreport", srcs: ["bugreport.cpp"]

2020-08-17 16:52:45 2735

原创 Android编译 Makefile入门学习

文章目录1 Makefile的基本规则2. make执行步骤3. 变量赋值4. make clean和伪目标文件5. Makefile 里有什么?6. 引用其他Makefile文件7. 伪目标8. 多目标$@9. 显示命令@10. 命令执行11. 命令出错 -12. 自动化变量 $@ @< $$@13. 字符串函数13.1 subst 字符串替换函数13.2 patsubst 模式字符串替换...

2020-03-05 11:13:10 670

原创 Android Studio Profiler使用之查看Trace

1. Android Profiler介绍Traceview 已弃用。如果您使用的是 Android Studio 3.2 或更高版本,则应改为使用CPU Profiler来执行以下操作:检查通过使用Debug类对应用进行插桩检测而捕获的.trace文件、记录新方法跟踪信息、保存.trace文件以及检查应用进程的实时 CPU 使用情况。cpu profile是Android...

2020-03-03 17:08:27 6673

原创 Android Systrace(3) -- 掉帧卡顿

1. 丢帧看Surface Flinger trace发现他的ui thread并不是每一个vsync都有绘制,有发生丢帧,原因是launcher数据是空的2. 查看lancher的trace,发现连续滑动时,每一帧都是成功绘制成功了,但是uiThread并不是都在doFrame,有些帧并没有做doFrame,原因是没有输入事件,可以看deliverInputEvent那些地...

2020-03-03 17:03:44 6006

原创 Android Systrace(2) -- 应用启动时间

1.1 应用启动我们平时在写应用的时候,一般会指定一个 mainActivity ,用户在桌面上点击这个 Activity 的时候,系统会直接起这个 Activity. 我们知道 Activity 在启动的时候会走 onCreate/onStart/onResume .这几个回调函数.许多书里讲过,当执行完 onResume 函数之后,应用就显示出来了…其实这是一种不准确的说法...

2020-03-03 16:57:29 1106

原创 Android Systrace(1) -- 介绍和抓取

1. 介绍systrace一般来说,我们的机器以60帧/秒显示时(也就是16.6 millisecond),用户会感觉机器会流畅。如果出现显示时出现丢帧的情况,我们要知道系统在做什么。systrace是Android4.1版本之后推出的,对系统Performance分析的工具。systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各...

2020-03-03 16:33:29 5660

原创 Android Bugreport 内容解释

文章目录1. 抓取Bugreport方法2. MEMINFO内存相关2.1 dumpsys MEMINFO2.2 cat MEMINFO2.3 dumpsys PROCRANK2.4 showmap总结3. CPUINFO3.1 dumpsys cpuinfo3.2 top4. PROCESSES AND THREADS (进程和线程)5. PRINTENV环境变量6. Android Log(...

2019-12-27 13:36:19 5950 2

原创 Android StateMachine使用

文章目录1. StateMachineJar的封装2. 使用示例3. 使用注意1. StateMachineJar的封装把源码的如下3个文件,提取为jar包使用就可以frameworks/base/core/java/com/android/internal/util/StateMachine.javaframeworks/base/core/java/com/android/intern...

2019-12-24 18:04:02 790

原创 Android O Jack预编译静态jar编译报错解决

文章目录1. 错误Pattern2. 错误原理3. 修改方法4.源码没有报错原理1. 错误Pattern编译错误原因:/bin/bash -c "(mkdir -p out/target/common/obj/JAVA_LIBRARIES/TSWheelService_intermediates/classes.jack.tmpjill.res ) && (unzip -...

2019-12-24 18:03:26 1328

原创 SettingsProvider监听值变化(ContentObserver)

文章目录1. registerContentObserver注册要监听的变量2. 自定义变量监听3. 原理4. Settings.java添加新变量方法5. SettingsProvider知识点1. registerContentObserver注册要监听的变量public class MainActivity extends Activity { public static fin...

2019-12-13 14:40:29 3319

原创 golang 常用代码

文章目录1. 字符串常见方法1.1 字符串三种比较方法1.2 字符串替换1.3 字符串截取1.4 字符串包含1.5 串联1.6 按空格返回切片数组1.7 去除两端字符2. 函数2.1 函数定义和调用1. 字符串常见方法1.1 字符串三种比较方法fmt.Println("go"=="go")fmt.Println("GO"=="go")fmt.Println(strings.Compar...

2019-12-10 15:39:57 266

原创 预制包含很多lib库的apk

文章目录1. Androidmk写法2. 编译结果3. LOCAL_PREBUILT_JNI_LIBS原理1. Androidmk写法预编译时使用LOCAL_PREBUILT_JNI_LIBS,来制定库的路径LOCAL_PATH := $(call my-dir)define get-all-libraries-module-name-in-subdirs$(sort $(shell...

2019-12-10 15:36:47 3277 1

原创 Android 编译之source和lunch

文章目录1. source build/envsetup.sh原理2.lunch原理3. lunch之后的不同产品的编译4.添加一个新lunch编译选项3.其他一些点1. source build/envsetup.sh原理会发现build/core和build/make/core文件是一样的,这是是从build/make/core链接过去的,因此修改build/make/core就好ubu...

2019-12-10 15:33:53 3975 1

原创 Android ArrayBlockingQueue使用

1. ArrayBlockingQueue使用示例阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。...

2019-12-10 14:56:26 1840

原创 Android Sensor (2) -- Sensor 架构及app的回调方式

1.1 Sensor架构1.1.1.数据传递方式App -->I2C过程: app通过SensorManager,getSystemServer调用到SystemSensorManager SystemSensorManager通过jni调用到SensorManager.cpp ,通过binder createconnection调用到SensorServiceSen...

2019-09-27 13:49:31 354

原创 android PowerManagerService介绍

https://blog.csdn.net/TaylorPotter/article/details/83824647

2019-09-17 16:48:03 751

原创 Android Sensor (5) --SensorService和SensorManager回调原理

目录1.1 FD共享流程1.2 SensorService读取数据并且发送SensorEvent1.3 客户端Looper收到event读取,分发给app1.4 BitTube原理SensorEvent从SensorService到SensorManager跨进程原理bitTube1.1 FD共享流程app注册listener时会初始化BaseEven...

2019-09-16 11:26:29 1406

原创 Android Sensor (4) -- SystemSensorManageer和SensorService连接

@SystemSensorManager.javapublic class SystemSensorManager extends SensorManager { @Override protected boolean registerListenerImpl(SensorEventListener listener, Sensor sensor, ...

2019-09-16 11:16:58 405

原创 Android Sensor (3) -- 服务端SensorService启动

目录1.1 SysterServer启动sensorservice1.2 android_servers.so 启动sersorservice1.3 SensorService instantiate1.4 SensorService:: onFirstRef1.1 SysterServer启动sensorservicesensorservice通过Sys...

2019-09-16 11:14:39 1290

原创 Android Sensor (2) -- Sensor 架构及app的回调方式

1.1 Sensor架构1.1.1.数据传递方式App -->I2C过程: app通过SensorManager,getSystemServer调用到SystemSensorManager SystemSensorManager通过jni调用到SensorManager.cpp ,通过binder createconnection调用到SensorServiceSensor...

2019-09-16 11:06:41 834

原创 Android Sensor (1) -- Sensor服务获取

目录1.1 app调用sensor1.4 createService and CachedServiceFetcher1.5 SystemSensorManager init1.6 app getDefaultSensor1.7 app registerListener1.8 SensorEventListener 数据回调 onSensorChanged...

2019-09-16 10:58:11 1091

原创 Android Input (8) -- ANR input event原理

Link:Android Input (1) -- InputManagerService启动Android Input (2) -- inputReaderAndroid Input (3) -- inputDispatcherAndroid Input (4) -- inputDispatcher到ViewRootImplAndroid Input (5) -- ViewR...

2019-09-12 14:49:10 2262

原创 Android Input (7) -- 模块的锁检测

Link:Android Input (1) -- InputManagerService启动Android Input (2) -- inputReaderAndroid Input (3) -- inputDispatcherAndroid Input (4) -- inputDispatcher到ViewRootImplAndroid Input (5) -- ViewR...

2019-09-12 14:11:12 347

原创 Android Input (6) -- PhoneWindowManager中Power,BACK等按键处理流程

Link:Android Input (1) -- InputManagerService启动Android Input (2) -- inputReaderAndroid Input (3) -- inputDispatcherAndroid Input (4) -- inputDispatcher到ViewRootImplAndroid Input (5) -- ViewR...

2019-09-12 14:06:18 2237

原创 Android Input (5) -- ViewRootImpl 的事件分发(Activity ViewGroup View )

Link:Android Input (1) -- InputManagerService启动Android Input (2) -- inputReaderAndroid Input (3) -- inputDispatcherAndroid Input (4) -- inputDispatcher到ViewRootImplAndroid Input (5) -- ViewR...

2019-09-12 14:03:16 2526

AES加密方法

适用于AES加密和解密,适用于AES加密和解密,适用于AES加密和解密,适用于AES加密和解密

2018-06-19

生成andridStudio签名

android.jks-pk8 platform.pk8 -cert platform.x509.pem //需要的签名文件 android/build/target/product/security/platform.pk8 android/build/target/product/security/platform.x509.pem //签名所在系统源码位置

2018-06-08

opengrok工具

windows10 搭建opengrok工具和自己写的文档,绝对值,包含jdk tomcat opengrok ctag

2018-04-04

MTK nvram读写apk

MTK平台,使用于读写naram里面值,主要关于nvagent使用

2018-03-10

视频信号处理与研究报告

视频信号处理里面的基本知识,通过这个文档,你会了解在视频这个行业的方面

2015-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除