自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (3)
  • 收藏
  • 关注

原创 APP 支持asan检查

android-ndk开发工具下有一个asan_device_setup脚本:~/Android/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/9.0.8/bin/asan_device_setup执行了脚本之后app就能支持asan检查了具体原理为:1.app_process被替换为了一个脚本:#!/system/bin/sh-from-zygoteASAN_OPTIONS=start_deac

2021-09-10 15:35:23 568

原创 push framework.jar无法开机

之前遇到一个问题push framework.jar后无法开机,最近有同事问了一下,太久了自己都忘了,因此做下记录有些安卓编译时默认会生成oat文件,把所有jar中的dex文件删掉,因为可以节省体积,加快首次开机速度俗称预编译,因为默认吧dex文件删掉了,我们删掉了framework.jar,/system/framework/arm/,/system/framework/oat/重新开机需要重新生成bootclass,因为缺少dex文件就会生成失败,导致无法开机,解决方法,在BoardConfig..

2021-09-02 18:29:06 983

原创 Graphics内存计算

dumpsys meminfo详情dumpsys meminfo surfaceflingerApplications Memory Usage (in Kilobytes):Uptime: 14170420 Realtime: 14170420Pss Private Private SwapPss Heap Heap HeapTotal Dirty Clean Dirty Size Alloc Free------ ------ ------ ------ ------ ----

2021-09-01 10:06:21 2653 1

原创 linux错误代码定义

#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EINTR 4 /* Interrupted system call */#define EIO 5 /* I/O error */#define .

2021-08-19 16:27:31 624

原创 hook学习案例

main.c#include <inttypes.h>#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <sys/mman.h>#include <test.h>#define PAGE_START(addr) ((addr) & PAGE_MASK)#define PAGE_END(addr) (PAGE_START(ad

2021-07-19 21:58:02 158

原创 hiddenapi无法反射问题

一.摘要 最近在q上遇到一个问题,有同事反应为什么我反射的方法在q上找不到对应的方法了,只获得了一些class.java的方法,这是q上在art中新加的hiddenapi相关的策略做了限制导致的,那么我们来看看是怎么限制的吧二.代码分析1.测试代码:void test() { List list = new ArrayList(); Class mclass = null; try { mclass = Class.forName...

2021-07-19 21:54:32 1906 1

原创 怎么读dumpstate数据

SystemProperties.set("ctl.stop", "dumpstate"); SystemProperties.set("ctl.start", "dumpstate"); new Thread(new Runnable() { @Override public void run() { ...

2021-06-07 20:36:30 236

原创 simpleperf

python app_profiler.py -p packagenamepython report_html.py

2021-06-06 10:32:08 149

原创 android存储读写测试工具-fio

一.工具下载并编译1.wget http://brick.kernel.dk/snaps/fio-2.2.5.tar.gz2.tar -zxvf fio-2.2.5.tar.gz3.cd fio-2.2.54.因为我们要在android中运行,所以我们需要安装交叉编译工具sudo apt-get install gcc-arm-linux-gnueabihf5.编译代码,指定arm运行平台,编译工具为arm-linux-gnueabihf-gcc,并且需要静态编译/configu

2020-10-22 20:44:39 3515 2

原创 droid.io下载地址

https://github.com/jgraph/drawio-desktop/releases

2020-06-09 11:31:20 248

原创 native内存泄漏分析

一.摘要 我们在分析内存泄漏时java内存泄漏我们可以集成LeakCanary来进行监控,出现问题时会打印出泄漏时的引用关系,那么我们native内存泄漏时如何分析呢?native内存泄漏我们可以通过malloc_debug工具来进行监控,详细的介绍请参考:https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README.md二.如何使用 默认情况下高通的手机已经包含了mal...

2020-06-08 22:06:02 4327

原创 fd泄漏检测

一.摘要我们在分析fd泄漏问题的时候一般的通用方法是在/proc/pid/fd下不断的ls -al | wc -l统计fd数量,并且查看哪个fd不断的增多,然后再去代码中排查对应的代码,有时候光看fd并不容易找到泄漏的地方。本文章将介绍高通的leakdetect方法。二.leakdetect使用介绍默认情况下手机已经包含了fd泄漏的检测代码,具体路径在:bionic/libc/malloc_debug/,它可以监控:file(1),socket(2),mmap(3)具体原理就不多说了,.

2020-06-02 18:05:28 2642

原创 adb tcp工具

平时我们调试有时需要使用到tcp来远程连接手机,每次输入一堆命令实在太麻烦,写了个脚本:#!/usr/bin/env python#coding=utf-8# owner:penzhicaiimport sysimport osimport timeimport platformgetIpCount = 0LINUX = 1WINDOWS = 2def usePlatform(): sysstr = platform.system() if(sysstr =

2020-05-13 21:24:39 1675

原创 native 解析死锁方法

一. 概述 我们平时在分析system_server watchdog问题时有时候会遇到一些native层的死锁问题,正常情况下我们是把所有可疑的线程调用栈全部通过symbols找到可以的死锁线程,这个方法比较耗费体力和脑力。这篇文章将会教会你一个更为简便的方法我们通过gdb调试直接打印出对应吃锁的线程。二.通过GDB查看线程锁 我们通过aosp代码找到锁的定义:h...

2020-03-06 12:37:00 5467

原创 ubtuntu chrome代理设置出错导致无法使用

今天遇到ubtuntu chrome浏览器无法使用,由于代理设置有问题导致百度了一波,总结一下解决办法1.安装sudo apt-get install gksu2.终端运行 gksu nautilus 命令3.在跳出的窗口,按 ctrl+l 然后在地址框中输入 /usr/share/applications/ 点击进入。4.然后找出google chrom ,右键点击选择“Pr...

2019-12-26 10:53:06 699

原创 CL-200A串口通信

一.进入串口模式1.cl-200a关机,开关拨向“O”端2.hold on键弹出3.同时按下SET/CALL/CF,并且开关拨向“I”端,这时候会进入USB模式二.CL-200A通信命令 模式 命令 PC connect 02 30 30 35 34 31 20 20 20 03 31 33 0D 0A Set Hol...

2019-12-17 14:11:49 2129 8

原创 Sensor记录日志导致的亮屏慢问题分析

一. 问题描述1.1 现象 手机解锁卡顿1.2 结论 diag记录数据慢导致系统卡顿二. 问题分析2.1日志分析 在大量的日志中发现Slow Looper的日志,都是DisplayPowerController的DisplayControllerHandler处理消息超时,并且有大量的dvm_lock_sample提示registerListen...

2019-12-09 20:44:39 5038

原创 git push失败问题

最近提交代码时老报错:pzc@pzc-ThinkPad-E480:~/giteework/Android_ZL_YJ$ git pushfatal: unable to access 'https://gitee.com/water_p/Android_ZL_YJ.git/': Failed to connect to 127.0.0.1 port 38673: 拒绝连接port 3...

2019-11-19 21:32:54 525

原创 Android.bp条件编译

一.概要 我们修改代码的时候经常会有一些共线的机器,我们只想进指定的机器或者指定的分支,在Android.mk中可以直接使用if来做判断,但是到了Android.bp中就无法在bp文件中使用条件编译了,本文将教会你怎么让bp文件也支持条件编译二.Android.bp介绍http://androidxref.com/9.0.0_r3/xref/frameworks/na...

2019-10-30 14:10:41 8686 1

原创 android稳定性学习路线

一.JAVA crash1.JAVA crash原理2.常见的JAVA crash介绍3.空指针异常分析技巧4.多线程处理异常分析技巧5.主动抛异常分析技巧二.NATIVE crash1.NATIVE crash原理2.常见的NATIVE crash介绍3.空指针异常分析技巧4.多线程处理异常分析技巧5.主动抛异常分析技巧三.WATCHDOG1....

2019-10-23 11:00:48 306

原创 注册Sensor后的第一笔数据

一.概要二 .上层三.底层四.常见问题1.注册sensor后为什么有时候不报数据?2.sensor的第一笔数据什么时候上报?五.总结

2019-10-17 17:26:38 191

原创 Sensor-sensor日志

一.摘要 在一些传感器异常的问题中我们常常需要看最近的sensor日志,那么我们可以通过dumpsys sensorservice来看最近sensor上报的数据。二.日志的初始化已经记录 我们在SensorService.cpp中有一个std::unordered_map<int, RecentEventLogger*> mRecentEvent;对象,这个对象...

2019-07-23 15:12:49 1654

原创 App收集Native Crash案例

由于一直都在做android系统相关的工作,获取native crash日志文件比较方便,只要发生native crash我们直接去/data/tombstones下找就行了,然后找到当天系统的symbols文件,再配合addr2line就可以分析了。因为今天被人问了app 没有权限应该怎么获取native crash堆栈,自己也只是大概知道是通过捕获信号量的方式处理的,并没有能说得很清楚,所以花...

2019-06-30 03:36:38 1081

原创 sensor数据分发

一.概要 数据分发的流程你就是注册时序的一个逆过程,上一篇文章中说到了注册,[email protected]进程最后会创建一个data_msg_reader_thread线程在不断的监听数据,当收到数据后,数据会逐步往APP传递,传递的进程是[email protected]>system_se...

2019-06-26 14:07:37 1933

原创 Sensor注册流程

一.概要 我们在android中经常会注册sensor然后监听sensor的数据来做一些特殊的功能,但是之前一直没有关注过整个注册的流程,本文将会告诉你高通855平台中sensor的整个完整的注册流程是什么样子的,先大概总结一下:APP进程创建一个SensorEventQueue,等待接收system_server发送过来的数据system_server进程会保存app端的Se...

2019-06-25 19:30:52 5472 2

原创 idea添加数据库

一.摘要 我们平时在写代码的时候经常会用到数据库,我们需要时常查看我们的数据是不是符合预期的,我们希望有一个图形界面可以直接看到数据,而不需要每次都手动敲指令,这样工作效率会比较低。本文将教会你怎么直接在idea中配置数据库,然后能直接看到我们的数据。二.配置在idea最右侧有一个工具栏,我们点击DataBase按钮,然后会出现如上界面,我们选择添加按钮选择M...

2019-06-10 23:47:42 6861

原创 android自动亮度-驱动

一.摘要自动亮度中最为重要的环节之一就是光感驱动驱动硬件读取环境光数据并计算lux值。它主要的工作原理就是通过读取环境光中的C/R/G/B通道成份,然后通过通道值的大小计算lux值并且上报数据给framework,framework通过不同的lux值计算当前亮度,然后设置手机亮度值。本文主要介绍光感驱动如果计算lux值的过程。二.代码流程分析先上一个主要流程,我们根据该流程来逐步...

2019-06-10 19:12:02 2042 2

原创 idea使用Allatori混淆java代码

摘要 我们平时开发的java项目大多是生成一个jar包运行,而jar包可以通过jd-gui进行解析,然后看到我们的源代码,如果我们写了大量的代码别人直接通过这样的方式把我们的辛苦成果直接窃取了那是多么难过的事情,因此我们很有必要对jar包做一些混淆代码的操作,让别人无法直接看懂我们的代码。本文将教会你如果把jar包进行混淆一.创建java项目,并运行1.创建并运行工程:点...

2019-06-04 16:26:44 6424 2

原创 Java JComboBox下拉框

package Window;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class MyJComboBoxTest extends JFrame { JComboBox jcb; ...

2019-04-06 11:43:05 282

原创 spring boot preHandle中返回json

package com.industryiot.authorization.interceptor;import com.industryiot.authorization.annotation.Authorization;import com.industryiot.authorization.manager.TokenManager;import com.industryiot.au...

2019-03-02 00:00:06 7335

原创 android自动亮度失效问题调查

一. 问题描述1.1 现象      手机自动亮度失效,调节亮度条屏幕闪烁1.2 JIRA 1.3 结论    [email protected]转换亮度值出问题,导致调节屏幕亮度异常    2.kernel设置的最大亮度值有问题,导致无法调大最大亮度 二. 问题分析2.1 基础学习在分析之前我们得大概知道自动亮度的...

2019-02-24 01:36:08 3097

原创 从aboot调用xbl方法

2019-01-31 22:47:24 1180

原创 马达测试脚本

#!/usr/bin/env python#coding=utf-8import sysimport osimport timedevice=sys.argv[1]#频率config_rate_in_us=5102#电压inVmax=2800ERM=0x01LRA=0X00def devicesRoot(): while 1: strinp...

2019-01-16 14:01:24 501

原创 自动亮度

一.自动亮度流程图:主要的过程就是通过监听light sensor数据,得到对应的Lux值,再通过配置的"lux-亮度关系"表计算出当前的亮度,然后设置亮度值。sensor改变设置自动亮度:mScreenAutoBrightnessupdateAutoBrightness:705, AutomaticBrightnessController (com.android.s...

2019-01-14 09:41:44 522

原创 Sensor启动分发流程-Framework

一.主体框架sensor Frameowk层的初始化主要由systemServcer,[email protected]来共同完成。1.systemServersystemServer这边主要是启动sensor线程,初始化SensorDevice对象,让systemServcer建立和[email protected]...

2019-01-12 01:57:37 913 1

原创 slpi sensor初始化

slpi_proc/ssc/sensors/ams_tmd3702/build/sns_tmd3702.scons一.配置文件:if 'USES_SSC_STATIC_LIB_BUILDER' in env: if 'SSC_TARGET_HEXAGON' in env['CPPDEFINES']: env.AddSSCSU(inspect.getfile(inspect.c...

2019-01-12 01:50:56 1924

原创 spring boot war包服务器部署无法运行

war包一般都是丢到webapps下就会自动运行了,但是对于无法运行的war包不知道怎么排查问题,不能看到日志十分恶心,所以想了一个简单的办法:1.ps -ef | grep tomcatroot 901 1 0 00:21 ? 00:00:39 /usr/bin/java -Djava.util.logging.config.file=/usr/sh...

2019-01-12 01:43:39 2165

原创 阿里云安装tomcat

一安装1.下载源码wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz2.解压源码:tar -zxvf apache-tomcat-8.0.23.tar.gzmv apache-tomcat-8.0.23 /usr/share/3.改名:mv...

2019-01-12 00:31:34 1713

原创 JAVA 客户端HTTP请求

GET请求 public static String sendRequestWithHttpClient(String url, String jason) { String response = null; //用HttpClient发送请求,分为五步 //第一步:创建HttpClient对象 HttpClient ht...

2019-01-04 22:58:31 456

原创 Sensor-马达配置

一.基本配置    1.确定马达类型(qcom,actuator-type):erm/lra(一般DC是erm,AC是lra)    2.确定马达频率(qcom,play-rate-us)    3.确定马达电压(qcom,vmax-mv)二.花样配置kernel/msm-4.14/Documentation/devicetree/bindings/input/qti-hapt...

2018-12-27 21:47:44 1287

LINUX设备驱动开发详解

基于2440的LINUX设备驱动开发详解

2014-09-28

2013年电子竞赛本科组题目

2013年电子竞赛本科组题目

2014-08-25

TCS3200程序

基于STM32的一个TCS3200程序,原子的开发板,希望对大家有用

2014-08-25

空空如也

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

TA关注的人

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