Android进阶
文章平均质量分 93
wzhseu
这个作者很懒,什么都没留下…
展开
-
Fork别人的项目以及利用Gradle发布项目到Jcenter
准备工作首先当然是有Github帐号,并且下载了Git For Windows(或其他Git相关工具)并已经正确配制了SSH Key.如果你要借鉴前人已有的思想和工作成果,并且为了满足自己项目的需求对该库做出较大的改动,可以fork别人的项目.往往该库可能相关的代码或者资源文件比较多,想到用Gradle依赖,这样我们就需要建立自己的仓库了Fork别人的项目并Clone到本地在本地所作的修改有的时候可原创 2017-05-15 19:13:30 · 860 阅读 · 0 评论 -
自己撸一个基于运行时注解的简单IOC框架
概述日常开发中的各种注解还是比较常见的,比如代码里面的各种@Override,@Nullable,后端的话Spring里面的各种注入以及依赖注入框架Dagger.对于更关注于界面的客户端,大名鼎鼎的ButterKnife以及XUtils中的ViewInject也是基于注解实现和使用的。先不去纠结运行效率,自己来写一段简单的注解代码,了解背后的原理。基本原理基于注解的开发,有一个基本概念IOC(Inv原创 2017-12-14 10:37:55 · 289 阅读 · 0 评论 -
Android Studio开发JNI示例
JNI和NDK介绍JNI(Java Native Interface),是方便Java调用C、C++等Native代码所封装的一层接口,相当于一座桥梁。通过JNI可以操作一些Java无法完成的与系统相关的特性,尤其在图像和视频处理中大量用到。NDK(Native Development Kit)是Google提供的一套工具,其中一个特性是提供了交叉编译,即C或者C++不是跨平台的,但通过N...原创 2018-03-24 23:46:45 · 31130 阅读 · 6 评论 -
利用DDMS中的TraceView检测应用中的黑屏无响应问题
测试提的一个Bug:在app首次安装后,从欢迎页点击跳过,接着出现了黑屏并且一直没有响应.只能杀掉了进程,重新启动后正常.也就是说应用出现了假死的现象,这是个很严重的问题,赶紧打开IDE调试:排查原因应用第一次启动,欢迎页加载是没有问题.在跳过进入首页时出现了黑屏现象.那来看首页,首页在第一次启动时做了开启Service、第三方SDK初始化、请求权限处理授权以及三个网络请求.到底是哪个环节...原创 2018-07-31 17:53:43 · 563 阅读 · 0 评论 -
EventBus源码解析
前言EventBus是安卓(Java中也可以用)开发中非常流行的一个第三方库,是一种发布/订阅事件的总线.拥有以下特性: * 简化了组件间的通信,可应用与Activity,Fragment和后台线程 * 将事件的发送方和接收方解耦 * 体积小现在的EventBus早已经从2.0进入3.0版本,而且最新版3.1.1也已经稳定了挺长的时间,从17年底再没有更新过GitHub.因为之前的项...原创 2018-08-05 18:46:33 · 1903 阅读 · 0 评论 -
AsyncTask的原理解析及使用缺陷
AsyncTask是Android从1.5引入的类,它内部做了比较完整的封装。借助它,我们可以很easy的在子线程进行耗时操作,在主线程处理结果,而不用操作Thread或者Handler。即使到目前,用AsyncTask做类似文件的上传或下载也是很方便的。使用就不多介绍了,就是按照AsyncTask的泛型定义,自己构造子类继承AsyncTask。初始化继承AsyncTask的子类在...原创 2018-08-15 01:01:07 · 454 阅读 · 0 评论 -
LruCache——解决OOM的利器
简介LruCache是Android 3.1的时候出现的,一般我们为了兼容低版本会使用v4包下的。LruCache是一种缓存策略,持有的是强引用,但是会控制在一个峰值下。它内部维护了一个队列,每当从中取出一个值时,该值就移动到队列的头部。当缓存已满而继续添加时,会将队列尾部的值移除,方便GC。LruCache用于内存缓存,在避免程序发生OOM和提高执行效率有着良好表现。LRU算法和...原创 2018-08-16 17:30:10 · 7866 阅读 · 0 评论