Android
文章平均质量分 79
study_zhxu
这个作者很懒,什么都没留下…
展开
-
学习资料整理
以下是自己闲来没事闲逛时收集的一些学习网站,现在整理一下,之前收集的好多好的网站都丢了,所以现在整理整理,留着以后也许会有用的原创 2016-03-15 13:50:59 · 1646 阅读 · 3 评论 -
Handler机制源码分析
Handler机制分析1.构造函数Handler的构造函数有四个,在构造函数中获取了Looper对象和MessageQueue消息队列 每个Handler对应一个Looper对象和MessageQueue对象让Handler处理消息有两种方法:向Handler构造方法中传入Handler.Callback对象,并实现Handler.Callback的handleMessage方法无需向Ha原创 2017-02-09 13:31:48 · 425 阅读 · 0 评论 -
Android内存
Android内存垃圾回收器的职责 1、分配内存 2、确保任何能被引用的对象保留在内存中 3、回收不能通过引用关系找到的对象的内存相关概念垃圾回收GC垃圾回收器中有一个进程来做上面的这些事情,这个进程查找对象引用的关系并释放内存,这个进程就是常说的GCHeap和StackHeap内存称为堆内存,指Java运行环境用来分配给对象和JRE类的内存,是引用的内存空间Stack原创 2017-01-13 17:22:04 · 444 阅读 · 0 评论 -
Android 仿微信聊天图片
前言在微信的聊天界面中,发送图片的时候显示图片如下,下面就来看看如何实现 实现首先我们自定义一个ImageView用于显示聊天界面中的图片。 自定义ChatImageView继承ImageView,代码如下public class ChatImageView extends ImageView { private Context context ; public ChatImag原创 2016-11-30 15:52:46 · 2521 阅读 · 0 评论 -
Dagger2注入原理解析
在上篇博客中我们介绍了Dagger2该如何在项目中使用,这篇博客将继续分析Dagger2实现的原理,代码依然采用上篇的代码,看这里。Dagger2的注入原理原理的讲解我们通过小明来带我们学习。小明在看了MVP的实战解析和Dagger2的使用后知道了Dagger2该如何在MVP模式中使用,但是小明是一个要求上进的好同学,小明并不满足于如何使用,小明想钻研钻研源码,看看如何实现的。小明在钻研Dagger原创 2016-08-12 15:29:05 · 6980 阅读 · 11 评论 -
Dagger2使用解析
前言现在Dagger2在项目中的使用越来越多,Dagger2是Dagger的升级版本,Dagger没有使用过,但是本篇说的是Dagger2,主要讲解的是Dagger2是如何使用的。对了,忘了说Dagger其实是一个 依赖注入的框架。什么是依赖注入依赖注入是一种面向对象的编程模式,它的出现是为了降低耦合性,所谓耦合就是类之间依赖关系,所谓降低耦合就是降低类和类之间依赖关系。可能有的人说自己之前并没有原创 2016-08-10 10:32:32 · 12359 阅读 · 10 评论 -
FFmpeg移植Android编译生成单个库
该文档主要是介绍将FFmpeg音视频编解码库移植到Android中的编译生成单个库的过程环境准备Ubuntu14.04 android-ndk-r9d-linux-x86_64.tar.bz2第一步:下载FFmpeg源码到FFmpeg官网下载FFmpeg源码,该文档编译的源码版本是FFmpeg3.0.2第二步:在Linux环境下编译FFmpeg通过虚拟机安装ubuntu14.04,该文档采用的方式原创 2016-08-05 16:23:37 · 1555 阅读 · 0 评论 -
FFmpeg移植Android编译生成多库
该文档主要是介绍将FFmpeg音视频编解码库移植到Android中的编译过程环境准备Ubuntu14.04 android-ndk-r9d-linux-x86_64.tar.bz2第一步:下载FFmpeg源码到FFmpeg官网下载FFmpeg源码,该文档编译的源码版本是FFmpeg3.0.2第二步:在Linux环境下编译FFmpeg通过虚拟机安装ubuntu14.04,该文档采用的方式就是该方式,原创 2016-08-05 16:20:08 · 706 阅读 · 0 评论 -
Android5.0隐式启动服务
Android5.0隐式启动服务在Android 5.0中系统禁止我们通过隐式意图启动service,如果通过隐式意图启动会报异常,所以需要通过显式意图启动service,如果要被启动的服务在本应用中,还可以通过显式意图启动,但是如果是要启动其他应用的service,那么如何通过显式意图来启动呢?下面介绍一个方法用于通过显示意图启动其他应用中的servicepublic static Intent原创 2017-01-17 21:42:26 · 1273 阅读 · 0 评论 -
Android HTTPS认证
1、概述因为最近公司的项目需求涉及到HTTPS双向认证和服务器进行交互,所以最近花了大量时间研究相关知识,发现网上并没有完善的相关文章,自己在这个过程中也走了好多弯路,所以决定写篇文章记录自己学到的东西,同时也希望能够帮到需要的人。2、HTTPS相关介绍HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer原创 2016-01-18 23:39:17 · 3792 阅读 · 0 评论 -
Android HTTPS认证之Volley封装
1、概述Goolge IO 2013推出了Volley框架,在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。 这原创 2016-01-24 20:29:23 · 3025 阅读 · 0 评论 -
Android 特殊的单例Toast(防止重复显示)
1、介绍所谓单例Toast就是每次显示的时候不会重复创建,节约资源。网上有很多这样的单例Toast,但是本篇介绍的是特殊的单例Toast,根据显示事件的长短来显示内容。正常的Toast显示的时候会出现这样的情况,当我们点击一个按钮弹出Toast的时候,当Toast显示没有结束的时候再次点击,后台就会又创建一个并且等待之前的显示完成后才会显示,如果我们疯狂的点击按钮,那就会产生多个Toast对象原创 2016-02-03 16:06:54 · 11064 阅读 · 5 评论 -
Android 手写数据库框架
前言在Android开发中,一定会遇到数据库sqlit的操作的,如果你的项目中没有用到数据库那么说明你的项目很失败。一般我们可以直接使用系统提供的sqlit操作完成数据库的操作,同时也可以使用现在比较多的数据库开源框架,比如GreenDAO OrmLitem等数据库框架,都是直接将对象映射到sqlit数据库的ORM框架。在这篇文章中我们将自己动手写一个ORM框架,自定义一个属于我们自己的ORM数据原创 2017-09-13 23:13:05 · 562 阅读 · 0 评论 -
Android 切面编程
1、前言做过JavaEE开发对切面编程AOP思想应该比较熟悉,而Android这方面使用的就比较少,所以这篇文章就带领大家入门Android AOP2、介绍可能我们比较熟悉的就是OOP思想了,同样AOP也是一种编程思想。在OOP中我们将功能统一成模块,一个功能一个模块。但是有时候难免会遇到这样的情况,有这么一个功能,其他的功能有需要用到这个功能。也就是说这个功能是横跨所有功能的,比如log功能,那么原创 2017-09-11 17:10:29 · 509 阅读 · 0 评论 -
Fragment延迟加载
/** * Created by xz on 2017/4/10. */public abstract class BaseFragment extends Fragment { /** 是否第一次显示 */ private boolean isFirstVisible = true ; /** 是否第一次不显示 */ private boolean isFirs原创 2017-04-10 09:41:40 · 685 阅读 · 1 评论 -
Android性能优化
Android视图的绘制流程Android中视图的绘制会经历三个阶段即onMeasure()、onLayout()和onDraw()一、OnMeasure()Measure是测量的意思,测量视图的大小。Viewd的绘制流程会从ViewRoot的performTraversals()方法中开始,在其内部调用View的measure()方法。measure()方法接收两个参数@Overrideprot原创 2016-08-05 16:06:06 · 1086 阅读 · 0 评论