自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 支持触摸拖动的 TouchDelegate

支持触摸拖动的 TouchDelegate文章目录支持触摸拖动的 TouchDelegate需求TouchDelegate 用法Bug改进 TouchDelegate新的 Bug图片移动预览典型处理方法分析 Bug 原因完善 TouchDelegate完整源码Example 地址参考需求最近有一个小需求,就是在界面上有一个预览图片的区域,这个区域用户可以双击缩放图片、双指自由缩放图片、触摸图片进行移动,对图片的局部区域进行查看,像这样:这个功能可以使用 github 中的开源库 PhotoView

2021-06-30 22:41:40 339

原创 ThemeFramework 主题切换框架实现

ThemeFramework文章目录ThemeFramework前言介绍主要特点快速开始常用方法FragmetDialogListView 和 RecyclerView动态添加 View主题切换事件监听单个 View 主题设置监听扩展支持的 View 类型View 类型支持情况架构实现思路和原理主题切换实现实时切换主题的场景确定方案核心实现LICENSE前言写了一个主题切换框架,在这里毛遂自荐一下,小伙伴们看看有没有用,欢迎批评指正。下面是项目的 README.md 自述文件。介绍Android

2021-01-23 15:36:42 752

原创 Android so(ELF) 文件解析

文章目录前言生成 so 文件相关工具objdumpreadelf整体结构图头部结构段表结构字符串表结构程序表结构符号表结构重定位表结构其他结构解析代码打开 ELF 文件检查 ELF 文件解析 ELF 头部结构解析段描述表结构解析字符串表打印段描述表结构解析符号字符串表解析程序头表解析段解析符号表解析重定位表测试解析源码参考前言ELF 是一种可执行文件的格式,全称是 Executable and Linkable Format,即可执行和链接格式,它是 Unix/Linux 系统下的二进制文件的标准格式,

2020-11-21 13:02:07 2677 1

原创 Xposed 实现原理分析

Xposed 实现原理分析文章目录Xposed 实现原理分析前言Xposed 使用方法Xposed 原理概述Android zygote 进程基于 Dalvik 的方法 Hook基于 ART 的方法 HookXposed 工作流程Xposed 项目结构XposedXposedBridgeXposedInstallerandroid_artXposedToolsXposed 源码分析Xposed 安装下载直接刷入使用 recovery 刷入Xposed 启动Native 层Java 层Xposed 模块加载

2020-10-11 22:31:53 3122 2

原创 Android 模拟器 Root 和 SuperSU 安装

Android 模拟器 Root 和 SuperSU 安装文章目录Android 模拟器 Root 和 SuperSU 安装前言环境说明安装步骤概述1. 创建模拟器并获取 root 权限2. 设置 SuperSU 所需环境3. 安装 SuperSU App测试SuperSU 工作原理参考前言有时需要在 Android 模拟器上测试特定功能,需要使用到 Root 权限,例如访问某些系统配置、修改系统文件等。通常情况下在 adb shell 的环境下使用 su 命令以 Root 身份执行相关命令即可满足需

2020-09-19 22:58:20 8820 2

原创 Android Dex 文件解析

Android Dex 文件解析文章目录Android Dex 文件解析前言基本数据类型LEB128 类型uleb128leb128uleb128p1Dex 文件结构图Dex 结构说明hedaer_itemstring_idstype_idsproto_idsfield_idsmethod_idsclass_defscall_site_idsmap_listtype_listclass_data_itemcode_itemdebug_info_itemDex 文件解析构建 Dex 文件执行 Dex 文件解

2020-09-09 22:48:12 2853

原创 Android zygote 进程启动分析

Android zygote 进程启动分析文章目录Android zygote 进程启动分析前言概述zygote 进程启动zygote 进程入口AppRuntim.startAppRuntime.startVmAppRuntime.startRegZygoteInit.mainZygoteInit.registerZygoteSocketZygoteInit.preloadZygoteInit.startSystemServerZygoteInit.runSelectLoop整体流程图参考前言zygo

2020-08-24 21:33:16 495

原创 Android init 进程启动分析

Android init 进程启动分析文章目录Android init 进程启动分析前言概述init 进程入口内核日志TEMP_FAILURE_RETRY 宏信号处理时序图属性服务init.rc 文件.rc 文件语法init 启动阶段init 支持的 commandinit 支持的 option关键服务启动zygote总结附录IO 多路复用僵尸进程参考前言Android 系统启动后,内核会创建 0 号内核进程 idle 进程,然后 idle 进程通过调用 kernel_thread 函数,以 kern

2020-08-17 22:03:07 468

原创 Android 应用进程 ServiceManager 的实现

Android 应用进程 ServiceManager 的实现文章目录Android 应用进程 ServiceManager 的实现实名 Binder 与匿名 Binder实名 Binder匿名 Binder需求分析实现方案Service 方案ContentProvider 方案最终结论实现一个 Binder 服务动态注册 Binder 服务测试开源仓库参考实现一个普通应用进程中的 ServiceManager,可自由注册和获取 Binder 服务。文末给出开源仓库地址。Binder 相关基础可参考

2020-08-01 15:58:48 904

原创 好用的 Android 日志工具

好用的 Android 日志工具文章目录好用的 Android 日志工具简介背景设计日志级别设计日志格式设计日志 TAG 设计日志安全性设计实现类名API日志 TAG日志内容封装支持使用方法单项目使用方法多模块项目使用方法`Logger` 选项说明仓库地址简介分享一个 Android 日志工具(Java 层),几乎我的每个项目都会用到,自认为非常好用,这里描述一下它的设计和实现。它有如下几个特点:简单,仅由一个 100 余行的 Java 类实现,猴子都能看懂 _;额外可选日志内容,提供线程名信

2020-08-01 15:55:37 701

原创 100 行代码实现 GitHub TOC 生成器

100 行代码实现 GitHub TOC 生成器文章目录100 行代码实现 GitHub TOC 生成器要解决的问题项目背景思路实现代码项目地址要解决的问题简要描述GitHub 不支持将 .md 文件中的 [TOC] 标签自动解析成目录,那么使用代码解决此问题。详细描述经常使用 GitHub 的同学都知道,README.md 是仓库的默认说明文档,当使用浏览器打开仓库的地址时,GitHub 将会自动把 README.md 渲染成网页,为用户提供良好的阅读体验。不止是 README.m

2020-08-01 15:52:57 464

原创 Android 二进制 XML 文件解析

Android 二进制 XML 文件解析文章目录Android 二进制 XML 文件解析前言XML 文件结构XML Chunk HeaderString Pool ChunkResource Ids ChunkXML Content ChunkResXMLTree_nodeStart Element ChunkCData ChunkEnd Element ChunkEnd Namespace ChunkChunk Header TypeXML 文件解析解析方法XML Chunk HeaderString

2020-07-19 11:04:59 1417

原创 Android arsc 文件解析

Android arsc 文件解析文章目录Android arsc 文件解析apk 文件结构资源编译过程1. Parse AndroidManifst.xml2. Add Included Resources3. Collection Resource Files4. Add Resources to Resource Table5. Compile Values Resources6. Assign Resource ID to Bag7. Compile Xml Resources8. Add Res

2020-07-19 11:02:28 1769

原创 Android ClassLoader 简析

Android ClassLoader 简析文章目录Android ClassLoader 简析ClassLoader 加载机制Android ClassLoaderDexClassLoader提示ClassLoader 加载机制ClassLoader 是一个抽象类,它为 Java 虚拟机上运行的进程提供类加载的操作,它定义了类加载器的标准接口,具体加载类的逻辑,以及加载类的路径由其具体子类实现。ClassLoader 对外提供一个 loadClass 方法,使用时调用此方法并传入符合 java 标

2020-07-18 21:11:38 540

原创 8086 贪吃蛇

8086 贪吃蛇运行环境:MsDos 7.1 或 DOSBox键盘方向键控制演示汇编代码assume cs:code, ds:data, ss:stack; gpu prop byte; 7 6 5 4 3 2 1 0; BL R G B I R G B; | \_____/ | \_____/; 闪烁 背景 高亮 前景; game map: 25 x 25; snack bodys max: 23 x 23data

2020-07-17 23:35:58 550

原创 Android Binder 设计分析

Android Binder 设计分析文章目录Android Binder 设计分析前言Binder 的优势简介Linux IPCIPC 对比Binder 特点总结Binder 通信模型Binder 驱动ServiceManager 和 ServerClientBinderBinder 协议ioctlBINDER_WRITE_READ 写入BINDER_WRITE_READ 读取binder_transaction_data 结构Binder 层次概述Binder 应用层Binder Server 端Bi

2020-07-12 15:34:08 362

原创 Android JNI 指南

Android JNI 指南前言编写此文档的用意:作为 Android NDK 项目开发的参考手册。对于 NDK 工程的搭建可参考 Android NDK 指南JNI 简介JNI(Java Native Interface,Java 原生接口),是 Java 和 C++ 组件用以互相通信的接口。Android 平台下的 JNI 支持由 Android NDK 提供,它是一套能将 C 或 C++(原生代码)嵌入到 Android 应用中的工具。为什么要使用 JNI 在 Android 平台下进

2020-07-12 15:13:02 379

原创 Android NDK 指南

Android NDK 指南文章目录Android NDK 指南前言NDK 工程构建Android.mkCMake独立工具链obfuscator-llvm 构建构建技巧独立构建快速部署Android.mk 变量参考变量命名规范NDK 定义的 include 变量目标信息变量模块描述变量NDK 提供的函数宏Application.mk 变量参考NDK APIAndroid.mkCMake引入预编译库引入动态库引入静态库CMake参考前言编写此文档的用意:作为搭建基础 NDK 工程的教程;作为入门

2020-07-12 15:05:07 635

原创 Makefile 指南

Makefile 指南文章目录Makefile 指南前言Makefile 介绍编写原则Makefile 规则Makefile 示例Make 工作方式Makefile 中的变量Makefile 自动推导另类风格的 Makefileclean 规则Makefile 里有什么?Makfefile 文件名引用其他的 Makfile环境变量 MAKEFILESMake 工作方式书写规则规则语法规则中使用通配符文件搜寻伪目标多目标静态模式自动生成依赖性书写命令显示命令命令执行嵌套执行 Make定义命令包使用变量变量基

2020-07-12 14:58:25 389

空空如也

空空如也

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

TA关注的人

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