![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工具
pan_blog
兴趣是最好的老师.
展开
-
懒加载Fragment
为什么要使用懒加载 比如TabLayout+ViewPager这种模式,普通加载会请求所有页面的数据并绘制,这样对流量,性能都造成一定的浪费。使用懒加载可以优化加载网络数据的时机,做到在需要时加载,不需要时不加载。 实现思路 由于显示fragment的时候,存在viewpager的预加载机制,且左右相邻的fragment都会回调setUserVisibleHint这个方法,然后我们希望在进行加载数...原创 2019-11-04 11:15:44 · 157 阅读 · 0 评论 -
RxJava——1.入门
定义: RxJava是基于事件流,实现异步操作的库。 作用:类似AsyncTask,Handler 特点:基于事件流的链式调用,逻辑简介,实现优雅,使用简单 RxJava中的4个角色: 例如:开灯 角色 作用 类比 被观察者(Observable) 产生事件 开关 观察者(Observer) 接收事件,并给出响应动作 灯 订阅(Subscribe) 连接...原创 2019-11-01 07:37:02 · 119 阅读 · 0 评论 -
RxJava——3.变换操作符
Map() 作用 对被观察者发送的每1个事件都通过指定的函数处理,从而变换成另外一种事件 应用场景 数据类型转换 // 采用RxJava基于事件流的链式操作 Observable.create(new ObservableOnSubscribe<Integer>() { // 1. 被观察者发送事件 = 参数为整型 = 1、2、3 ...原创 2019-11-01 07:37:37 · 116 阅读 · 0 评论 -
RxJava——2.创建操作符
just() 作用: 快速创建1个被观察者对象(Observable) 发送事件的特点:直接发送传入的事件 应用场景 快速创建 被观察者对象(Observable) & 发送10个以下事件 Observable.just(1,2,3,4).subscribe(new Observer<Integer>() { @Override ...原创 2019-11-01 07:37:16 · 116 阅读 · 0 评论 -
Recyclerview局部刷新介绍
介绍Recycerview中局部刷新的几个api 功能很简单,一个简单recyclerview界面,测试几个api功能,通过上拉加载更多刷新界面。 先测试模拟5条数据,展示简单的5个item界面。 下面的代码是执行刷新操作 data.get(2).name = "修改的第3条数据"; data.get(3).name = "修改的第4条数据"; data.get(4).name = "修改原创 2018-01-26 23:44:44 · 348 阅读 · 0 评论 -
用户头像上传到服务器
每个应用都有这样的功能,在我的界面,需要修改用户头像(拍照,选择本地),将图片上传到服务器. 这就涉及到了好几个问题: 1.现在市面上好多手机已经是7.0系统,这里我们就要注意一些兼容处理,6.0动态权限,7.0文件安全 2.图片的上传,这里我使用okhttp 1.最好用的拍照Utils 这里我只粘贴操作的代码,具体的utils类大家可以去copy,后面我会说到 这里我还用到了i原创 2017-07-21 16:43:29 · 1667 阅读 · 2 评论 -
Fragment数据懒加载
Fragment懒加载的使用场景便是在一个ViewPager管理多个Fragment时候,由于ViewPager”出色”的缓存机制会在显示一个Fragment的同时,预先加载好左右相邻两个Fragment的部分资源(会触发相邻Fragment的onCreate生命周期)。所谓的懒加载就是让我们加载数据的操作仅在Fragment可见的时候执行,可以节省不必要的开销。 看”懒加载”这个名称挺唬人的,其转载 2018-01-17 10:38:55 · 188 阅读 · 0 评论 -
RecyclerView滚动到底部监听
public class OnRecyclerViewScrollListener extends RecyclerView.OnScrollListener implements OnBottomListener { public enum LAYOUT_MANAGER_TYPE { LINEAR, GRID, STAGGERED_GRI转载 2018-01-17 10:13:35 · 677 阅读 · 0 评论 -
版本控制——2.svn分支合并
仓库目录结构是branches,tags,trunk。 branches:分支,例如主项目有bug需要修复,这时最好的做法是拉取分支,在分支上处理,处理完成合并到主项目。 tags:通常存放里程碑事件代码。比如新版本发布,将项目备份到tags文件夹下。 trunk:主干。居于主要地位的那份代码称为主干。 1.trunk使用 新建项目保存到trunk目录下。 2.tags使用 完成1原创 2018-01-06 12:18:44 · 265 阅读 · 0 评论 -
版本控制——1.svn冲突处理
模拟开发人员A和B协同开发中的冲突,A,B同时都从仓库拉取最新代码。 1.A完成更改提交 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save原创 2018-01-06 00:02:03 · 247 阅读 · 0 评论 -
android 代码混淆配置
使用360加固工具就可以完成代码的混淆加固,偷懒的话可以不用进行代码的混淆配置。但是每次发包需要使用360加固,上传apk加固签名完成又下载下来,网速不好时候又特别慢,所以我还是不嫌麻烦收到配置。下面粘贴的是我再项目中配置的混淆忽略文件,做这个工作最好是从项目开始就着手去写。#混合时不使用大小写混合,混合后的类名为小写 -dontusemixedcaseclassnames # 指定不去忽略非公共库原创 2017-09-21 16:30:45 · 543 阅读 · 0 评论 -
android studio请求网络数据日志显示不全
as控制台对输出日志大小有限制。下面的工具类可以解决该问题 public class LogUtil { //可以全局控制是否打印log日志 private static boolean isPrintLog = false; private static int LOG_MAXLENGTH = 2000; public static void v(String msg转载 2017-10-25 12:00:29 · 1402 阅读 · 0 评论 -
分析通话记录数据库
获取数据库文件 root过的手机查看/data/data/com.android.providers.contacts/databases/contacts2.db数据库文件,如果不能打开文件夹adb shell su -c “chmod 777 文件路径”修改权限 例如:adb shell su -c “chmod 777 /data/data/com.android.providers.co原创 2017-09-20 10:32:21 · 2136 阅读 · 0 评论 -
GreenDao的使用
1.特点:1.一个精简的库。 2.性能最大化,内存开销最小化。 3.对Android进行高度优化。 GreenDao3.0采用注解的方式来定义实体类,通过gradle插件生成响应的代码。2.GreenDao的配置:1.在项目根目录的build.gradle中添加classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'2.在app目录下的bu原创 2017-04-04 15:13:52 · 374 阅读 · 0 评论