自定义博客皮肤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 115

原创 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 39

原创 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 74

原创 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 83

原创 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 70

原创 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 51

原创 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 132

原创 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 88

原创 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 935

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

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

2020-03-03 17:03:44 1015

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

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

2020-03-03 16:57:29 301

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

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

2020-03-03 16:33:29 783

原创 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 852 1

原创 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 233

原创 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 355

原创 Android 定时器Timer 和handler

文章目录1. Timer + TimerTask实现定时器1.1 代码实现1.2 结果2. 子线程的handler实现定时器2.1 代码实现2.2 结果1. Timer + TimerTask实现定时器1.1 代码实现mTimer.schedule( mTimerTask, 2000, 3 * 1000 ); //表示2s后开始执行第一次,然后每隔3s执行一次mTimer.schedule...

2019-12-18 15:36:41 97

原创 Android Json(3) -- Json的解析

文章目录1. json格式介绍1.1 json对象格式介绍1.2 json数组格式介绍2. google Gson解析2.1 引入jar2.2 解析json对象 JsonObject2.2.1 写json文件2.2.2 写json对应的JavaBean文件2.2.3 google Gson jar解析2.2.4 结果2.3 解析Json数组 JsonArray2.3.1 写json文件2.3.2 ...

2019-12-18 11:06:45 63

原创 Android Json(2) -- Json 读取assets json文件

文章目录1. 封装的工具类JsonGetUtils2. 判断是否是json文件3. 解析使用1. 封装的工具类JsonGetUtilspackage com.mytest.util;import android.content.Context;import android.content.res.AssetManager;import java.io.BufferedReader;...

2019-12-18 11:06:07 65

原创 Android Json(1) -- Json对象的创建

文章目录1. 直接由String生成的json数据1.1 字符串构建JSONArray1.2 字符串构建JSONObject2. 用JSONObject和JSONArray构建3. 用HashMap构建JSONObject,完成构建json String4. 通过java class生成jsonString4.1 通过java class生成jsonObject4.1 通过java class生成...

2019-12-18 11:05:16 98

原创 Android Xml Pull解析

文章目录1. 代码示例2.结果log3. 扩展3.1 修改添加xml3.2 结果1. 代码示例数据放入Student类,这里是测试代码,放在了内部类里面@main/assets/layout.xml<?xml version="1.0" encoding="utf-8"?><students> <student> <nam...

2019-12-17 15:23:32 24

原创 Android Bitmap常见用法

文章目录@[toc]1. 摄像头byte[]数据转为bitmap2. bitmap转为byte[]数据3. bitmap保存为图片4. byte[]直接保存为图片5. 从图片得到Bitmap6. bitmap的裁剪7. 从resource得到bitmap参考链接1. 摄像头byte[]数据转为bitmap正确方法public static Bitmap saveBGRA8888ByteToB...

2019-12-13 15:53:21 96

原创 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 849

原创 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 47

原创 go 写文件

//go语言学习文章https://blog.csdn.net/qq_340217121. 自己封装的写文件方法,并检测文件是否存在某字符串写文件方式很多,这里使用的os.OpenFile//go文件处在同一个package下,都是在一个包里面可以直接调用方法,变量package mypathimport ( "os" "bufio" "log" "fmt" "strin...

2019-12-10 15:37:56 63

原创 预制包含很多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 292

原创 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 386

原创 Android ArrayBlockingQueue使用

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

2019-12-10 14:56:26 390

原创 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 60

原创 android PowerManagerService介绍

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

2019-09-17 16:48:03 333

原创 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 367

原创 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 105

原创 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 363

原创 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 179

原创 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 377

原创 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 541

原创 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 101

原创 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 751

原创 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 628

原创 Android Input (4) -- inputDispatcher到ViewRootImpl

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

2019-09-12 11:43:20 445

原创 Android Input (3) -- inputDispatcher

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

2019-09-12 11:25:23 505

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关注的人 TA的粉丝

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