![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android进阶知识
文章平均质量分 92
Martinmu2013
Simple is beautiful.---Martin
展开
-
RxCache使用场景记录
场景一个需求,构建UI数据时,需要组装数据,我们将数据分为两类,一类为配置数据、一类为UI框架数据。框架数据依赖配置数据进行数据组装,配置数据特性为长期保持不变。针对这个特性,我们可以将配置数据json保存到本地,设置超期时间,不用频繁的进行网络访问。对此,我们进行RxCache库的使用,该库通过注解的设置可以网络数据保存到制定文件目录下。具体的使用方法可以参考《Android RxCache使用详解》。踩坑在配置过程中,我没有直接按照上面的方式进行访问,得到了类型转换错误,查看原因是保存的json原创 2020-08-10 18:22:15 · 318 阅读 · 0 评论 -
JetPack之DataBinding的使用
前言这篇文章主要讲解JetPack中的DataBinding组件的使用。Data Binding解决问题:当界面被改写的时候,Activity中的控件代码也必须被改写。为了避免这个问题的发生,使用了databinding。Build.gradle配置项目使用dataBinding功能defaultConfig{ ... dataBinding{ enabled tr...原创 2020-03-31 11:38:57 · 515 阅读 · 0 评论 -
性能优化系列——内存泄漏
前言之前写了一篇《性能优化系列-内存抖动》简单实用Memory Profiler工具解决内存抖动的情况,这边文章写实用工具配合MAT解决内存泄漏。内存泄漏介绍定义:内存中存在已经没有用的对象表现:内存泄漏引起,内存泄漏,可用内存逐渐减少,系统为了增加可用内存就会一直GC,导致内存抖动。危害: 内存不足、GC频繁、OOMMemory AnalyzerDownload转换HR...原创 2020-02-05 23:47:09 · 441 阅读 · 0 评论 -
性能优化系列——内存抖动
前言通常在我们编写程序的时候,如果对象频繁的创建或者销毁就会出现内存抖动的现象,如果我们熟悉Java虚拟机的内存回收机制的话,会造成下面两种现象。频繁创建对象,导致内存不足以碎片(不连续)不连续的内存片无法被分配,导致OOM今天我们就针对这种情况,来使用模拟解决此类问题。用例代码此用例通过不停的创建字符串数组来造成内存抖动。MemoryShakeActivityclass Me...原创 2020-02-05 18:00:10 · 582 阅读 · 0 评论 -
Android开发速查手册
前言这里会对所有通用UI的相关的知识点进行一个速查手册字符串字符和样式原创 2019-11-26 19:52:52 · 520 阅读 · 0 评论 -
定制化ROM采坑之路:自己动手调试Android源码(超简单)
前言配置AndroidStudio修改iml文件《Android8.1 源码编译.ipr .iml 文件》查看文章生成iml文件。使用文本编辑器打开iml文件,搜索excludeFolder开头的字段,将下面的信息复制后覆盖原来的excludeFolder所有配置项。 <excludeFolder url="file://$MODULE_DIR$/.repo" /> ...转载 2019-03-14 15:51:12 · 1266 阅读 · 0 评论 -
Android系统源码Build系统入门详解
前言最近在做系统开发,很多知识都要重新归纳和整理,最近在编写Makefile文件的时候,是在不熟悉,网上找了些文章发现这篇文章对于入门很有价值《Android系统源码Build系统入门详解》文章的内容都是转载原文的,我准备整理下,放在我自己的博客下方便我自己查阅。1.包含C的Android.mk文件以前早期版本的时候,我们再下载NDK的时候,通常都会有一个hello-jni的用例,方便我们自...原创 2019-03-12 14:23:18 · 399 阅读 · 0 评论 -
定制化ROM采坑之路:makefile——Android源码阅读必备技巧
前言最近在看Android源码中涉及到了大量的Makefile文件,想通过这篇文章的学习扫如何编写一个简单的makefile文件,在后续的学习过程中,如果还有其他问题可以直接去官网继续学习,国内的教程还有一个陈皓大神写的《跟我一起写Makefile》也是很经典的学习资料。Makefile的由来通常我们编写项目的时候,都会编写多个C文件,一个C文件我们可以编译为一个目标文件,多个目标文件可以组...原创 2019-03-17 02:42:02 · 549 阅读 · 0 评论 -
Volley 实现原理解析(转)
转自:https://github.com/android-cn/android-open-project-analysis/tree/master/volleyVolley 实现原理解析本文为Android 开源项目实现原理解析中 Volley 部分项目地址:Volley,分析的版本:35ce778,Demo 地址:Volley Demo分析者:grumoon,校对者:huxi...转载 2015-04-10 14:32:53 · 558 阅读 · 0 评论 -
【解析Glide2.0源码】Glide中的单元测试
前言其实,为什么要写一篇文章来专门讲解一下Glide的单元测试呢,主要还是我看了下Glide版本的变迁,发现他做了很多单元测试。这也提醒了我,如果要编写一个性能好的框架,单元测试绝对是必不可少的,所以我想以这边文章来做一些单元测试方面的扫盲和Glide主要做的一些单元测试的类讲解。本章目标单元测试知识点扫盲Glide的单元测试讲解单元测试知识点扫盲在我们进行单元测试用例之前,首先我...原创 2019-03-30 00:07:49 · 326 阅读 · 0 评论 -
定制化ROM采坑之路(4):从Framework层去调用App中的数据库
前言最近在做一个实验,从Framework层去调用应用层的数据库,可以开启服务我们开发的App数据库进行一些管理,下面来讲解下我的开发流程。准备工作首先,我们准备一个数据库项目,主要就是基础的CRUD操作,我这里准备了一个Demo可以去下载。修改Framework层代码我们准备Hook的点是在Application的onCreate()方法进行Hook,预想只要创建进程的时候就打印数据库...原创 2019-03-06 20:19:54 · 557 阅读 · 1 评论 -
Xposed插件开发手册(1): Xposed框架的安装
前言之前我写了一篇文章《定制ROM采坑之路(2):魔趣OS刷入小米5A手机过程详解》,在进行成功刷机后,我尝试将Xposed框架安装到我新刷的系统中了。1.安装Xposed因为在安装Xposed框架的前置条件就是给手机执行Root,所以安装这块分为两个步骤:获取Root权限安装Xposed环境和Apk文件。1.1 获取Root权限由于魔趣论坛中《我们将从2018年3月13日起移除...原创 2019-01-28 17:54:27 · 3121 阅读 · 0 评论 -
FaceBook推出的Android图片加载库-Fresco
FaceBook推出的Android图片加载库-Fresco原文链接:Introducing Fresco: A new image library for Android作者 : tyrone Nicholas译者 : ZhaoKaiQiang校对者: Chaossss校对者: bboyfeiyu校对者: BillionWang状态 : 完成在Android设备上面,转载 2015-04-15 09:54:21 · 423 阅读 · 0 评论 -
android开发者应该收藏的优秀博客和技术网站
安居客Trinea 的个人博客 http:// www.trinea.cn codekk 一个Trinea发起的开源项目解析分享站点 微信公众号:codekkhttp://codekk.com/open-source-project-analysis 友盟Mr.simple维护的技术网站 开发技术前行http:// www.devtf.cn内容来源于Mr.simple发...转载 2015-07-08 10:51:24 · 540 阅读 · 0 评论 -
【解析Glide2.0源码】Glide基本用法流程解析(一)
【解析Glide2.0源码】Glide基本用法流程解析(一)前言一直想找一个Android图片框架来研究,经过思考还是将目前使用最广泛的图片框架Glide来进行研究。目前网上的GlideV3和V4版本源码解析文章确实很多,但是看起来确实很费劲,目前Glide的版本已经到了V4.8.0了,很多思想已经很成熟,但是作为程序员都知道写框架是一个沉淀和积累的过程其实也跟程序员本人的功底和当时的整个IT...原创 2018-09-21 15:35:28 · 436 阅读 · 0 评论 -
自定义LayoutManager,仿微信朋友圈的九宫格效果
自定义LayoutManager实现九宫格效果前言开始重构和初始化测量与ViewGroup的区别为什么在这里编写此测量方法布局与ViewGroup的不同?编写布局方法填充添加NineGridLayoutManager总结前言之前在项目中我有写过自定义控件九宫格是根据ViewGroup写的,功能已经实现了,但是后来我感觉如果以后性能提升的话,可能在缓存这块有要求。所以,我感觉还是改变使用自定义L...原创 2018-10-31 17:15:48 · 4356 阅读 · 5 评论 -
Mac终端使用Sqlcipher加解密基础过程详解
前言最近在看了三篇文章后,对于微信解密的过程有些启发,打算自己动手去解密数据库,所以这里记录下我的过程。C++编译SQLite数据库以及如何使用加密数据库SQLCipher微信数据库最新解密方式,用代码解密微信数据库信息!Java中通过JNI技术开发一款PC端微信数据库解密备份工具开始解密Sqlite3在使用之前,先去官网下载Sqlite下载好以后,我们会依次得到这三个我文件...原创 2018-12-27 12:06:59 · 3532 阅读 · 0 评论 -
Mac下微信6.7.3版数据库破解过程
数据准备首先,我们下载一个360一键ROOT,将手机成功ROOT后。进入到微信的文件目录,将沙盒里面的数据全部拷贝到本地电脑中。在手机的sd卡中创建一个临时目录,用于存放微信的数据.拷贝微信的沙盒数据到当前文件夹中。数据准备完成//mkmkdir /storage/A1AE-1701/tmp/a_wechat/MicroMsg//copycp -r /data/data/co...原创 2019-01-02 10:43:25 · 3914 阅读 · 0 评论 -
定制化ROM采坑之路(1):魔趣8.1版本源码下载和编译过程
前言最近在做ROM包的制作查了很多资料还是选择国内魔趣的开源项目来开发。下载在《5行命令教你编译魔趣》这个帖子中,我了解到了一些流程,现在就动手实践一下。repo init -u https://github.com/MoKee/android -b mkn-mr1 --depth 1repo sync. build/envsetup.shlunch mk_cheeseburger-...原创 2019-01-21 16:49:23 · 10532 阅读 · 1 评论 -
定制化ROM采坑之路(3):基于魔趣OS开发入门级的系统级应用
制作第一个系统级应用目前,我们已经刷机成功了,但是这应该并不满足,所以最后一节,我们就来制作一个系统级应用,尝尝鲜。编译我们的第一个系统级应用。将系统级应用复制进入到system文件夹下最后,我们将ROM包中的system文件制作成镜像文件make_ext4fs -s -l 2048M -a system system.img ./system日志输出:$ mak...原创 2019-02-01 10:53:42 · 2178 阅读 · 0 评论 -
定制化ROM采坑之路(2):魔趣OS刷入小米5A手机过程详解
解锁小米手机目前,编译完成我们魔趣的5A手机源码后,需要将编译完成的镜像文件刷入我们的手机,因为一般大厂的手机都是经过BL加锁的会防止我们加锁,在这里我们需要根据小米的BL解锁教程来进行解锁,教程很多我就不细说了。这里上一张解锁成功的图。之前已经解锁成功了,为了截图又重新解锁一次。在这里我提示一下,因为官网下载的解锁包是exe文件,所以需要windows系统,我这里直接是安装虚拟机来进行解锁...原创 2019-01-28 14:53:04 · 6128 阅读 · 0 评论 -
Android 你应该知道的学习资源 进阶之路贵在坚持
里面有国内外的Android学习资源,希望更多人能看到这篇好文章.转载 2015-04-15 09:44:03 · 382 阅读 · 0 评论