HeXinGen的博客

汗水凝结成时光胶囊,独自在这命运里拓荒

android插件化之BrocastReceiver

实现BrocastReceiver的插件之前,先来了解一下应用程序是如何被解析AndroidManifest.xml中各种标签的。 先来了解一下应用程序安装过程 系统启动过程中,会扫描某些目录的程序,安装加载过程,为应用程序分配Linux的用户Id和Linux的用户组Id,也会解析程序。 先来看下...

2019-07-25 11:42:46

阅读数 19

评论数 0

Android插件化之ContentProvider

先来了解一下ContentProvider的安装和获取过程,查找Hook点。 安装ContentProvider过程: 应用程序在创建Application的过程中,执行handleBindApplication(),会将contentprovider进行安装。 ActivityThread pr...

2019-07-24 11:49:18

阅读数 12

评论数 0

Android插件化之动态替换Application

先分析Application的创建过程和生命周期,从而对症下药,达到动态替换Application的效果。 先来了解一下Application的创建过程。 启动应用进程后,会通知AMS,最终回到ActivityThread中的Handler处理,H.BIND_APPLICATION标识对应的动作,...

2019-07-23 11:41:37

阅读数 25

评论数 0

Android插件化之宿主PathClasssLoader加载插件Dex(合并式方案)

Android插件化之ClassLoader加载插件Dex方案 目前盛行的插件化方案中处理dex,有两种: 合并式的Dex,单个ClassLoader加载方案 多个ClassLoader加载dex方案 这里介绍,合并式dex的单个ClassLoader加载方案。 合并式的Dex加载方案 and...

2019-06-28 14:48:42

阅读数 50

评论数 0

android 8.0 Only fullscreen opaque activities can request orientation 问题(Hook方式优雅绕过检查 )

前言: 在android 8.0上遇到Only fullscreen opaque activities can request orientation,采用优雅的方式,Hook绕过检查,无需要修改xml,或者降低目标版本。 查看android其他版本中正常运行的项目中的配置: Activit...

2018-12-30 14:35:22

阅读数 168

评论数 0

Java SE中的自定义ClassLoader和源码分析委托模型机制

类加载器: Bootstrap ClassLoader:是用C++语言写的,它是在Java虚拟机启动后初始化的,它主要负责加载%JAVA_HOME%/jre/lib,-Xbootclasspath参数指定的路径以及%JAVA_HOME%/jre/classes中的类。 Extension ...

2018-12-04 23:14:28

阅读数 78

评论数 0

AndroidStudio 发布开源库Library到jcenter(填了N个坑)

前言: 将自己编写的功能库开源出来,方便他人交流,查找问题,同时,gradle 依赖方式也快捷使用。 前期准备工作 1. 注册账户 点击进入bintray注册页面。 输入相关信息,如下图所示: 创建成功后,出现等待激活页面,如下图所示: 打开谷歌邮箱,点击激活的邮...

2018-11-29 17:47:15

阅读数 143

评论数 0

AndroidStudio 3.0配置NDK,及编写C++与Java交互案例

NDK介绍: Android NDK 是一组允许您将 C 或 C++(“原生代码”)嵌入到 Android 应用中的工具。 Java 原生接口 (JNI): JNI 是 Java 和 C++ 组件用以互相沟通的接口。 android studio配置ndk 1. 在Studio中下载ndk...

2018-11-20 15:11:40

阅读数 723

评论数 0

Android IPC通讯之Binder机制分析

优势: 与Linux中的Pipe管道、信号Signal、消息队列Message、共享内存Share Memory、Socket插口等相比较,Binder在进程间传输数据,只需要执行一次拷贝操作。因此它不仅提高了效率,而且节省了内存空间。 角色: Server: 提供服务的进程称为serve...

2018-10-08 10:27:19

阅读数 117

评论数 0

Handler消息机制之流程解析

Hanlder中Messsage的发送和处理过程 Handler.sendMessage() -->MessageQueue.enqueueMessage() -->Looper.next() -->MessageQueue.nex...

2018-09-18 23:04:29

阅读数 193

评论数 0

Handler机制之Message源码解析

Message类: 一个包含描述和可以发送到Handler中的任意数据对象的消息。 创建Message对象的两种方式: Message.obtain() 或者 Handler.obtainMessage() 以上两个方式会从回收的Message池中取出,可以节省优化。 先来了解全局stat...

2018-09-18 23:01:53

阅读数 70

评论数 0

Handler机制之MessageQueue源码分析

介绍: 一个用于保存(被Looper分发的)Message列表的低级类。与Native world的MessageQueue由紧密联系 MessageQueue类内部实现了两个Interface,一个静态内部类。 接口IdleHandler在消息队列没有消息时使用,处理poll状态时的动作...

2018-09-18 22:08:03

阅读数 139

评论数 0

Handler机制之Looper源码解析

Looper类 为一个线程执行循环取出Message的类。 异步线程和Handler与Looper的使用案例 class LooperThread extends Thread { public Handler mHandler; public voi...

2018-09-18 22:06:09

阅读数 120

评论数 0

Android开发一个VolleyHelper库,Hook Volley方式,无入侵实现(Form表单、JSON、文件上传、文件下载)

前言: 近期,接手一个广告项目,该项目依赖一个CommmonLibrary,该库中选用Volley库和Gson库实现图片和网络通讯。项目又需要下载文件和上传文件的需求。要么考虑手写文件操作库,实现下载和上传。要么考虑对Volley库进行重构改造。 众所周知,Android Volley...

2018-08-03 11:56:26

阅读数 308

评论数 0

Android Volley的HTTP缓存策略

前言: HTTP缓存策略,可以有效的减少重复请求,降低服务器后台压力,和减少客户端的流量带宽。 不了解HTTP缓存策略,建议先阅读Android HTTP 缓存策略(用于检查磁盘数据是否过期)。 服务器端返回的HTTP缓存策略 找到NetworkDispatcher类:查看执行...

2018-07-27 16:08:04

阅读数 183

评论数 0

Android Volley 超时重试机制

前言: Volley框架有许多优秀的机制,例如,HTTP缓存策略,内存和磁盘缓存策略,重试策略,四个网络线程一个缓存线程策略。 这里,从源码,解读Volley重试机制。 Volley中,定义出一个重试的RetryPolicy接口: /** * Retry policy for...

2018-07-27 13:38:47

阅读数 269

评论数 0

Android HTTP 缓存策略(用于检查磁盘数据是否过期)

前言: HTTP缓存策略有效提高网络效率,开发一个网络库或者图片加载库都需要用到它,用于判断存储的数据是否过期,是否需要重新请求服务器。 简单介绍HTTP缓存策略 HTTP 1.0 缓存 Pragma :表示是否缓存 Expires : 过去时间 HTTP 1.1 缓存...

2018-07-26 15:24:33

阅读数 445

评论数 0

Android 7.0 NotificationManagerService源码分析(应用层App,Fragmework中Service层,SystemUI系统App)

前言: 国产ROM定制化比较复杂,最近在做Notification的适配工作。了解Notification源码走向,才知道国产ROM系统对Notification拦截点,找到相应办法绕过。话题有些绕远了,这里还是讲解Notification源码走向。 本篇,介绍,如何从应用层,到远程的...

2018-07-21 18:13:07

阅读数 1232

评论数 0

Android 7.0 NotificationListenerService源码分析

本篇介绍,NotificationListenerService和NotificationManagerService的相互跨进程通讯源码走向。 1. 了解NotificationListenerService: NotificationListenerService是一个抽象类的Servic...

2018-07-21 18:06:25

阅读数 363

评论数 2

Android 联想K5 Play 8.0 Notification突破拦截(vdex反编译 )

前言: 部分国内ROM系统对消息栏做了拦截,因此,需要用户手动授权开启消息栏通知。 若是能够找到开启的代码,是否可以绕过拦截,默认开启呢? 本篇文章,介绍如何找到拦截点,如何去突破。至于其他的ROM系统的拦截,也是类似。 联想K5 Play为案 , 探究消息栏突破拦截 1....

2018-07-13 15:45:30

阅读数 1125

评论数 0

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