当前搜索:

[置顶] Android开发——Protocol Buffer效率之高的原理介绍

0.前言最近的项目里有用到Protocol Buffer,Protocol Buffer是Google公司开发的一种数据描述语言,类似于XML,是一种结构化数据的数据存储格式,可用于数据传输量较大的即时网络通信IM等场景。之所以使用它,是因为PB将信息序列化为二进制的格式,体积缩小了3倍,序列化速...
阅读(716) 评论(4)

[置顶] Android开发——简述RxJava框架的实现原理

0.前言看此篇之前最好知道RxJava的使用,关于框架的使用推荐这篇文章,由于RxJava内部实现有点复杂,既然用拆轮子的方式来分析源码比较难啃,不如换种方式,以造轮子的方式,将源码中与性能、兼容性、扩展性有关的代码剔除,留下核心代码带大家揭秘RxJava的实现原理(本文不涉及框架的使用介绍)。 ...
阅读(549) 评论(4)

[置顶] Android开发——断点续传原理以及实现

0.  前言在Android开发中,断点续传听起来挺容易,在下载一个文件时点击暂停任务暂停,点击开始会继续下载文件。但是真正实现起来知识点还是蛮多的,因此今天有时间实现了一下,并进行记录。本文原创,转载请注明出处为SEU_Calvin的博客。 1.  断点续传原理在本地下载过程中要使用数据库实时存...
阅读(21524) 评论(158)

[置顶] Android APP架构设计——MVC、MVP和MVVM介绍

0. 前言为了更好地进行移动端架构设计,我们最常用的就是MVC、MVP和MVVM,作为三个最耳熟能详的三大架构,应用可谓非常广泛。本文原创,转载请注明出处为SEU_Calvin的博客。本篇博客将介绍这三种架构设计的工作原理以及优缺点,以及它们在Android中的表现。 1.   MVC1.1   ...
阅读(8743) 评论(0)

[置顶] Android开发——View绘制过程源码解析(二)

0. 前言  View的绘制流程从ViewRoot的performTraversals开始,经过measure,layout,draw三个流程,之后就可以在屏幕上看到View了。上一篇已经介绍了View和ViewGroup的measure的源码解析过程,本篇介绍measure后如何获得View的宽...
阅读(13416) 评论(5)

[置顶] Android开发——View绘制过程源码解析(一)

0. 前言  View的绘制流程从ViewRoot的performTraversals开始,经过measure,layout,draw三个流程,之后就可以在屏幕上看到View了。其中measure用于测量View的宽和高,layout用于确定View在父容器中放置的位置,draw则用于将View绘...
阅读(14438) 评论(8)

[置顶] Android开发——Android中常见的4种线程池(保证你能看懂并理解)

0.前言使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行管理,比如使用scheduleThreadPool.scheduleAtFixedRate(myR...
阅读(37334) 评论(29)

[置顶] Android开发——常见的内存泄漏以及解决方案(二)

0.前言 上一篇Android开发——常见的内存泄漏以及解决方案(一) 中已经对部分可能会引发内存泄漏的情况进行了阐述,此篇将从图片、动画等资源角度介绍可能会造成内存泄漏的情况以及应对方法。6. 集合类导致内存泄漏很常见的一个例子就是图片的三级缓存结构,为了更好的用户体验,缓存机制必不可少,三级...
阅读(12296) 评论(2)

[置顶] Android开发——常见的内存泄漏以及解决方案(一)

0. 前言  Android的内存泄漏是Android开发领域永恒的话题,那今天就总结一下常见的内存泄漏吧。也给自己提个醒,在以后的编码过程中多注意这个问题。在Android Studio里可以通过一些分析工具比如MAT来找出潜在的内存泄漏。还有如果不清楚Java里的内存泄漏以及内存泄漏、内存益处...
阅读(14475) 评论(3)

[置顶] Android开发——减小APK大小

0.前言APK的大小对APP的加载速度,使用内存大小和消耗功率多少有一定影响。如何减小APK的大小对于Android开发者是一个永恒的话题。那么首先就来了解一下APK的组成结构。 1.APK的组成结构META-INF:包含CERT.SF和CERT.RSA签名文件,和MANIFEST.MF清单文件。...
阅读(17442) 评论(4)

[置顶] Android开发——AsyncTask的使用以及源码解析

1.AsyncTask使用介绍 AsyncTask封装了Thread和Handler,通过AsyncTask可以很方便地在执行完后台任务后更新UI。如果不太清楚Android的Handler机制,可以查看此篇Android消息机制详解。   下面是一个使用AsyncTask的实例,利用网络下载某U...
阅读(15196) 评论(7)

[置顶] Android开发——Android 6.0权限管理机制详解

0.前言 最近在研究所实习,我负责维护Android手机取证项目的Android客户端,有客户反映我们的APP在Android6.0无响应,经过调试发现SD卡读写权限权限被拒绝。但明明是在AndroidManifest.xml文件中声明过的。查了很多资料才知道Android6.0的很多权限申请机制...
阅读(16627) 评论(12)

[置顶] Android开发——Android的消息机制详解

1. 我们为什么需要Android的消息机制   我们知道,Android规定访问UI只能在主线程中进行。若在子线程中访问UI,就会抛出异常。这个验证由ViewRootImpl的checkThread方法来完成。 为什么不允许在非主线程访问UI呢,这是因为Android的UI控件不是线程安全的。并...
阅读(13589) 评论(1)

[置顶] Android开发——程序锁的实现(可用于开发钓鱼登录界面)

1. 程序锁原理 实时检测栈顶Activity的包名,如果和我们预置的包名相符(可用SQLite数据库对要进行匹配的包名进行信息存储),则新开一个Activity栈,将拦截画面置于用户面前。只有在用户输入密码,并且验证成功后,才“放行”。代码实现比较简单,获取到topActivity的包名即可进...
阅读(11852) 评论(5)

[置顶] Android开发——免Root监听微信的聊天记录(后台秘密发邮件)

发送后台邮件需要用到三个第三方的库,分别为activation.jar,additionnal.jar,mail.jar。发送邮件的时候需要用到很多信息,包括发送邮件的服务器的IP和端口、邮件发送者的地址、邮件接收者的地址、登陆邮件发送服务器的用户名和密码、邮件主题、邮件的文本内容等等。 这里需要...
阅读(24854) 评论(25)

Android开发——WebView轻量缓存优化

0. 前言产品被用户投诉 APP 流量消耗厉害:[2017-08-08 07:34:40] 严选 APP 流量消耗太大啦,每次启动都更新,下面流量很大。建议优化流量的消耗,可以对加载画质进行选择。想比淘宝 APP,消耗流量可是大多了。[2017-06-01 21:43:36] 怎么没用有流量节约模...
阅读(786) 评论(3)

Android开发——ListView的复用机制源码解析

0. 前言  前段时间找工作,看了很多人的面经,不得不说找个工作很麻烦。尤其是Android,岗位的数量比不上前端后Java后台也就算了,问的东西又多又杂,这里就不多列举了,其中有一个印象比较深的问题是关于ListView复用机制的。复用机制谁都会用,但是却不一定能真正讲清楚。因此才有了此文。 1...
阅读(288) 评论(0)

Android开发——插件化技术中的关键技术浅析

0.  前言在Android开发中,插件化就是让我们的应用可以把一些功能和逻辑单独抽出来放在插件apk中,然后主apk做到按需调用,这样的好处是一来可以减少主apk的体积,二来可以做到热插拔,在不发布新版本的情况下实现更新某些模块,更加动态化。网上有很多插件化的解决方案和框架,但是它们都必须解决几...
阅读(611) 评论(2)

Android开发——增量更新实战中遇到的问题

0.   前言之前一篇 Android开发——增量更新实战总结介绍了增量更新的具体实现步骤,但是其中有一些坑还是需要注意一下的,这里对遇到的一些坑做一个总结,希望以后遇到这些坑的同学少走弯路。1.  Windows下的编译错误  在上一篇的3.2我们导入源码的过程中,其中为了防止Windows下的...
阅读(612) 评论(0)

Android开发——增量更新实战总结

0.   前言增量更新的原理还是比较简单的,但是真的实现起来遇到的坑简直让人吐血,我是在windows下实现的,各种各样的坑,各种各样的错误,折腾了整整两天多才完成了,因此记录下来。先介绍下什么是增量更新和为什么我们需要增量更新,当我们发布新版本的时候,一些用户升级并不是很积极,反正我个人是不太喜...
阅读(465) 评论(0)
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 141万+
    积分: 1万+
    排名: 1349
    个人说明