- 博客(16)
- 收藏
- 关注
原创 SharedPreferences源码分析
一、SharedPreference简介SharedPreference是Android系统提供的轻量级数据存储方案,常被简称为SP。采用key-value的数据存储方式,数据存储媒介是XML文件。用于存储App的配置、账号等轻量级数据信息,是常用的外部存储数据方案。二、SharedPreference用法SharedPreference用法比较简单,包括读取、和写入两种用法。1)写入S...
2019-05-21 11:40:33
162
原创 okhttp源码分析
一、okhttp简介OKHttp是一个处理网络请求的开源项目,Android 当前最火热网络框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient)。现在在Android开发中最火的应用最多的联网框架毫无疑问是okhttp,目前已经大量替代了Volley、HttpUrlC...
2019-04-03 15:51:40
315
原创 Lifecycle源码分析
一、Lifecycle简介Lifecycle是 Android Architecture Components架构设计方案中的生命周期管理框架。也是LiveData、ViewModel搭建MVVM架构的基础,目前在SupportActivity(AppCompatActivity的父类)和Fragment中都已植入这个框架。Lifecycle优点:1)无侵入式监听生命周期。2)对需要与Ac...
2019-03-14 18:24:46
229
原创 LiveData源码分析
一、LiveData简介 LiveData是google官方架构JetPack系列的一个响应式开发框架,LiveData是一个可以被观察的数据持有者类。说到响应式开发或者说观察者就不免想到RxJava,RxJava将观察者模式运用的炉火纯青。但LiveData和RxJava的定位是不一样的,LiveData主要用于搭建MVVM架构,并在其中作为...
2019-03-14 15:37:18
141
原创 ViewModel源码分析
一、ViewModel的简介 2018年谷歌IO大会上正式发布了JetPack组件,其中包括Databing、Lifecycles、LiveData、Navigation、Paging、Room、ViewModel、WorkManager等一系列框架。并且发布androidx包,这些框架的最新版本组件将引入到androidx包下。 JetPack架构组件的发布,意味着goog...
2019-03-12 20:30:21
195
原创 自定义解析Html标签
Android支持部分原生Html标签,通过textview.setText(Html.formHtml(s))方式将文本以Html的方式格式化显示在TextView中。在Android-25以上的SDK支持大部分标签,包括<font/>、<span/>标签等等。但在不同的SDK版本上对标签的属性上支持不一样,在Android SDK-25以下版本<span...
2018-03-28 16:23:31
1751
原创 Android6.0权限管理框架:EasyPermisssion、
转至元数据起始 Android6.0权限管理: 1.EasyPermission: 导包: compile 'pub.devrel:easypermissions:0.1.9'1.重写要申请权限的Act...
2018-03-20 19:31:45
2639
原创 ViewPager和RecyclerView缓存View的问题
在安卓中ViewPager和RecyclerView是常用控件,这两个控件的关键特点是存在缓存。可以提升App效率,对于重用View来讲不必去多次加载View。对于Android系统来说,LayoutInflate加载View本质上是需要时间的,即便这个时间可能会很短。所以对于缓存机制来讲是很必要的。但是对于缓存View来讲需要注意一些的问题。处理不很可能会造成复用上的问题。所以对于复用Vie
2017-11-23 11:17:48
1077
原创 Android高版本上采用低版本对话框样式
在开发中随着版本的升级各种对话框的样式会随着改变,在Android5.0以后推出了AppCompatActivity,采用了最新的样式,但是如果仍然想用5.0以前的对话框样式又不会对新的样式产生影响就可以采用继承Activity的方式,并自定义设置Activity的theme来达到效果。第一步:public class BaseActivity extends Activity
2017-04-01 11:37:50
289
原创 Android自定义多层水纹波浪效果
public class Weave extends View{ //画笔 private Paint mPaint; //抗锯齿 private DrawFilter mDrawFilter; //屏幕宽 private int screenWidth; //屏幕高 private int screenHeight; //波
2017-02-16 16:34:12
648
原创 自定义带提示的文本输入框
Android自带AutoCompleteTextView,功能是在输入的是否完成提示功能,需要根据输入内容进行提示,空内容没有提示。在项目中不满足需求,要求需要类似于可输入内容的下拉框。根据AutoCompleteTextView源码进行自定义实现功能。代码: /** * 带自动提示功能的EditText */public class MyEditText extends
2017-01-09 11:32:21
876
原创 Android数据库更新解释
一、何为android数据库更新 对于android软件app来说,很多的app都需要进行产品迭代更新,对于不同的版本app来说所需要的数据库表结构可能会不同,所以在进行app的升级是需要进行数据库的更新,简单来说就是对数据库的表结构、表的数量进行更改。二、数据库更新的方法onUpgrade onUpgrade方法是在数据库更新时系统调用的方法。对于软件更新
2016-12-20 10:48:17
395
原创 zxing二维码扫描界面销毁问题
InactivityTimer控制扫描界面销毁时间控制public final class InactivityTimer { private static final class DaemonThreadFactory implements ThreadFactory { @Override public Th
2016-11-22 21:17:56
1399
原创 AndroidStudio导入Eclipse项目造成.9图片报错的问题
一般AndoridStudio导入一个Eclipse项目.9图编译都不会过,解决方法:关闭AndroidStudio的PNG合法性检查,一般采用关闭.9图合法性检测。在build.gradle里的buildToolsVersion下面添加以下两句:aaptOptions.cruncherEnabled = false aaptOptions.useNewCrun
2016-11-04 11:22:27
332
原创 ListView跳坑之路
ListView 中的布局控件最好设置宽度高度,尤其是高度,要么指定像素,要么匹配父布局,否则容易在滑动过程中由于控件绘制产生空指针异常。
2016-08-13 20:28:56
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人