Android Hook 一 Hook CloseGuard

一、抛出问题 在上一篇 dalvik.system.CloseGuard 介绍了CloseGuard的原理和作用,并在文中提到 APP端可以利用Hook REPORTER 在来实现客制化的上报提示信息 本章通过代码来学一下怎样Hook这个REPORTER来定制上报信息功能。 二、案例分析 直接...

2019-01-03 19:55:26

阅读数 81

评论数 0

Gradle学习三 :AS自定义Gradle插件

一、定义插件 1.File-New Module-Android Library,取名plugin1 2.删除plugin1目录下所有文件,只保留build.gradle 编写build.gradle,代码如下: apply plugin: 'groovy' apply plugin: 'mave...

2019-01-02 11:09:49

阅读数 60

评论数 0

声纹识别调研

1. 基础概念 声纹(Voiceprint),是用电声学仪器显示的携带言语信息的声波频谱。 现代科学研究表明,声纹不仅具有特定性,而且有相对稳定性的特点。成年以后,人的声音可保持长期相对稳定不变。实验证明,无论讲话者是故意模仿他人声音和语气,还是耳语轻声讲话,即使模仿得惟妙惟肖,其声纹却始终不相同...

2018-12-28 11:45:18

阅读数 161

评论数 0

dalvik.system.CloseGuard 介绍

CloseGuard is a mechanism for flagging implicit finalizer cleanup of resources that should have been cleaned up by explicit close methods (aka “expl...

2018-12-28 08:39:01

阅读数 267

评论数 0

Android Surface显示系统框架一概览

基于Android7.1源码和相关资料画了APP UI绘制显示的大致框架。 涉及安卓系统全栈内容: APP层 framework层(WMS) native层(SurfaceFlinger) HAL层(hwcomposer/gralloc) 包括了如下概念: 进程通信组建:binder/As...

2018-12-24 00:25:30

阅读数 140

评论数 2

Linux 进程通信-共享内存Shmem示例

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数...

2018-12-18 15:46:23

阅读数 119

评论数 0

Dalvik虚拟机内存碎片测试分析

《移动App性能评测与优化》第一章1.3.3介绍了优化Dalvik内存碎片。文中列举了一段代码,可能会在GC后引起内存碎片问题,代码如下: private Object result[] = new Object[100]; void fool(){ for (int i = 0;i &a...

2018-12-05 10:02:29

阅读数 43

评论数 0

Android doze模式分析一

一、引言 DOZE是安卓系统从6.0(API级别23)开始引入的对低电和应用待机模式的优化。具体介绍可以参考developers官方文档。 阅读完官文后,思考几个问题: 6.0之前,APP怎么处理可以让系统不休眠? 6.0开始,系统如何解决APP不让系统休眠的问题? 二、问题简答 6.0之前,...

2018-11-25 00:58:28

阅读数 937

评论数 0

Android native层发送广播

github代码地址

2018-11-06 17:47:13

阅读数 312

评论数 0

青蛙跳台阶算法,n m

问题描述:一个青蛙,一次可以跳1级台阶,也可以跳2级,…也可以跳n级,总共有m级台阶,问青蛙总共有多少种跳法? 问题分析: 以n=2为例 当m =1 时f(1) = 1 当m =2 时f(2) = 2 当m =3 时f(3) = 3 = f(2)+f(1) 当m =4 时f(4) = 5 = f(...

2018-11-04 23:10:29

阅读数 29

评论数 0

java生产者消费者模型,需要考虑多线程安全

方法一:使用synchronized做同步 ` package ProducerConsumer; import java.util.LinkedList; import java.util.Queue; public class ProducerConsumerSynchronized { pr...

2018-11-02 14:35:52

阅读数 24

评论数 0

《代码整洁之道》阅读笔记

让营地比你来的时候更干净 1.pulic方法可以通过单元测试 2.类的行数不要超出1000行,函数只做一件事,做好一件事 3.函数内部缩进层级不超过4层 4.函数参数个数不要超过6个 5.方法的行数不要超出100行 保持类、方法职责单一 短小精悍的类和方法更具有可读性,随着时间的增加...

2018-09-12 16:01:56

阅读数 47

评论数 0

安卓线程学习五 之 HelloWorld app运行时线程资源分析

一 抛出问题 一个最普通的 HelloWorld app运行以后,总共会开启多少线程,这些线程分别是什么作用,线程的status是什么? 二 分析 helloworld app运行以后,打开Android Studio — Tools — Android — Android Device...

2018-08-08 17:54:27

阅读数 111

评论数 0

安卓线程学习四 之 线程优先级和调度

一 问题思考 安卓开发,如果想设置线程优先级有两种方法: 1 Android sdk也提供一个设置线程优先级的方法 2 Thread.java里面提供了设置线程优先级的方法 这两个方法有什么区别,应该选择使用哪一个呢? 二 线程优先级的原理 2.1. android.os.pr...

2018-08-07 10:08:51

阅读数 917

评论数 1

安卓线程学习三 之 线程状态

一 源码分析 在Thread.java类中,有一个枚举类State描述了线程状态机: /** * A thread state. A thread can be in one of the following states: * <ul&...

2018-08-05 23:10:51

阅读数 332

评论数 0

安卓线程学习二 之 java线程启动分析

安卓系统或应用开发,java多线程编程是非常重要也是比较难的一个知识点。掌握线程的实现原理、生命周期,合理的使用线程、线程池对于开发稳定、高效的程序是必须的基础。 结合安装系统、应用开发实践,我们先思考下面几个常见的问题: 安卓系统基于Linux实现,每一个java线程会对应一个pthrea...

2018-07-31 00:44:27

阅读数 94

评论数 0

安卓系统之线程学习-概要

安卓系统或应用开发,java多线程编程是非常重要也是比较难的一个知识点。掌握线程的实现原理、生命周期,合理的使用线程、线程池对于开发稳定、高效的程序是必须的基础。 结合安装系统、应用开发实践,我们先思考下面几个常见的问题: 安卓系统基于Linux实现,每一个java线程会对应一个pthrea...

2018-07-31 00:43:32

阅读数 73

评论数 0

jdk native源码下载

一 背景 java宣称一次编译,到处运行,主要功劳在jvm隔离了系统平台的差异性。jdk代码包括: java 用于提供开发接口 c 用于jni调用 c++ 汇编 用于适配不同操作系统和芯片平台 在windows平台下载jdk安装包,安装成功之后,会在安装目录生成: 其中src是部分...

2018-07-28 02:27:54

阅读数 394

评论数 0

Android app 配置文件使用分析

在安卓app开发中,常需要将一些数据放在配置文件,辅助程序开发和运行。依据数据复杂度、使用场景等条件,会存在不同种类的配置文件,比如最常见的xml文件,使用在Androidmanifest.xml,res资源定义等。其实除了xml之外还有其他格式的文件可以用作配置文件,比如json、propert...

2018-07-18 23:53:30

阅读数 945

评论数 0

AirPlay Android接收端学习一 协议

一 AirPlay 接收端描述 AirPlay是苹果的私有协议,苹果官方未开放api和sdk,目前相对权威的一份非官方协议文档。这篇文档详细描述了aiplay 服务发现、图片、音视频、镜像投屏的相关协议,给我们开发airplay设备提供了很好的参考。但是不足之处是文档已经有6年多时间没有更新过,...

2018-07-08 17:43:16

阅读数 1283

评论数 0

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