- 博客(60)
- 资源 (10)
- 收藏
- 关注
原创 一种优雅的方式实现RecyclerView条目多类型
转载请标明出处:http://blog.csdn.net/xuehuayous/article/details/80021325;本文出自:【Kevin.zhou的博客】下面以一个故事来讲来说明这中方式是怎么实现的。放弃vlayout大家都了解一般首页是非常复杂的,去年初项目引入vlayout来解决首页复杂布局的问题,后来对vlayout和databinding结合进行了封装,使...
2018-04-23 14:40:44 15436 46
原创 优雅地把Html解析为Java/Kotlin实体对象
使用Java如何优雅地爬取网页内容,并解析为实体对象呢?由于我对Android平台比较熟悉,在项目中我们使用的Retrofit、Okhttp、Kotlin协程、LoganSquare解析把Server返回的Json解析为实体对象。那爬网页的时候是不是也可以使用这套模型,只不过是把解析的地方改为其他的方式呢?
2021-06-27 12:53:07 1259 2
原创 Flutter常用命令
基本检测环境配置flutter doctor新建项目flutter create -t [app|apckage|plugin] --org [包名] -i [ios语言:objc|swift] -a [android语言:java|kotlin] test_create_app
2019-08-07 12:30:30 727
原创 跨团队合作中的一些思考
经过1月中旬到2月底魔鬼般的加班,项目正常上线了。虽然表面上看是按照预计的规划在推进,实际上暴露出来的问题非常多。这里作为一个简单的记录与思考,在以后遇到类似情况下该如何推进项目进度及预防风险点。神排期由于项目比较特殊,是兄弟团队的一个项目,Android端在一个同学开发了一部分的情况下,发现时间不够,紧急安排我和另一个同学加入。也就是项目推进过程中,对于项目一无所知的两个人加入了项目。领导定...
2019-03-08 23:27:29 656
原创 编写脚本统计Android APP冷启动时间
最近准备做下APP的性能优化,首先肯定是要全面了解下APP的性能状况,第一个想到的就是APP的启动速度。自家的和别人的有多少差距呢?我们知道可以通过adb命令查看启动时间,比如查看微信的:$ adb shell am start -W -n com.tencent.mm/.ui.LauncherUIStarting: Intent { cmp=com.tencent.mm/.ui.Launc...
2019-01-10 15:41:41 720
原创 Android中利用前台服务白色保活
进程优先级进程我们都知道,每一个APP进程(process)都拥运行在独立的虚拟机(virtual machine)中,这样就保证了每个APP的独立。在系统资源紧张的时候会选择一部分进程杀掉释放内存,那么系统是如何选取杀掉哪些留下哪些呢?这就涉及到进程的优先级。优先级为了对运行的进程进行统一管理,系统根据进程的不同状态进行了分离,分为如下五个状态:前台进程 (Foreground pro...
2018-12-18 14:57:05 4254
原创 Android Studio中添加阿里云Maven仓库镜像
不知道公司网最近怎么抽风了,加载依赖的速度奇慢无比,加入阿里云的镜像地址之后就顺畅了很多,其实也比较简单,这里记录下:buildscript { ext.kotlin_version = '1.3.0' repositories { maven { url "http://maven.aliyun.com/nexus/content/gro...
2018-11-21 19:59:29 9689 2
原创 优雅地处理MVVM中各层次关系
前言:相信大家对MVVM架构都有过一定的了解,如果不太了解的朋友可以看下我之前写的《Android中MVVM是什么?》。整体分为View、ViewModel、Model三层,View层处理用户交互,ViewModel层进行业务处理;Model层进行数据处理。那么如何进行优雅地处理他们之间的关系呢?分层关系首先来看下它们之间的关系,如下图所示:通过上图我们可以看出:View持有ViewM...
2018-11-19 17:21:57 3526
原创 ViewPager导航的一些想法
关于ViewPager的导航,网上的自定义控件非常多,大部分能够满足我们的需求,而且每一个开源出来的控件都有非常多的自定义属性,尽量让使用者可以更加全面的控制样式。...
2018-10-19 11:17:15 508 4
原创 Android中MVVM是什么?
前言:去年对项目的架构进行了调整,迁移到了MVVM架构,还好之前的代码写的还算清晰,在调整的过程中也没有遇到太多的问题。改造的过程中也查找了大量资料,不管是架构相关的还是针对MVVM的代码或文章,发现在Android中对于MVVM大家还没有达成共识。或许每一种方式在固定的业务场景中都是有益的,并没有谁对谁错。之前在技术群里也听到有很多人想了解MVVM,正好我也总结下希望对想了解的朋友能起到帮助作用...
2018-09-20 14:16:32 2128 1
原创 认识Android中的双向绑定
转载请标明出处:http://blog.csdn.net/xuehuayous/article/details/81100571;本文出自:【Kevin.zhou的博客】前言:在和一些朋友&网友聊的过程中,发现很多人对于Android中的双向绑定还不太了解,所以MVVM架构就比较难以向大家描述清楚,那么先来了解一下Android中的双向绑定。什么是双向绑定双向绑定到底是什...
2018-09-18 21:54:56 5018
原创 如何在Android Studio中发布本地maven库
由于Android项目的分模块思想,在一个Android Studio项目中通常会有多个Module,一般情况下直接以Module Dependencies的方式依赖不同Module,这也是项目分模块初期的一种形态。当然最好的方式是可以把依赖库Module发布到maven服务器,但是有些代码是不允许发布到外网maven库的,这时可以搭建一个公司内的maven服务器,但是如果公司没有多余的服务器给你...
2018-08-17 13:54:15 5708
原创 Android 一种优雅的方式避免用户快点击(Databinding)
在Android开发中比较常见的交互是响应用户的点击进行下一步的操作,作为老司机的我们都知道,即便不是用户故意快速点击也可能会出现多次响应的情况,尤其需要等待异步处理结果时,这是不能忍受的。突出体现是向服务端连续提交了两次请求。典型方案利用时间差private int lastId;private long lastTimeStamp;public boolean isValidClick(...
2018-03-06 16:41:10 2742
原创 根据状态栏颜色亮度设置黑白字体(Android 6.0及以上版本)
前段时间看我们的APP顶部的状态栏还是默认的黑色,搭配上整体的白色背景,的确有点丑,改成白色的状态栏多显大气。背景颜色直到Android 5.0系统才提供了设置状态栏背景颜色的方法,使用StatusBarUtil库可以最低支持到Android 4.4,这个看起来是一个比较好的解决方案,但是状态栏的颜色如果改为白色,那么就看不到状态栏内的文字了。聪明的你肯定想到,把状态栏内的字体改为黑色的不就完了。...
2018-02-23 19:23:57 10920 5
原创 一步步封装Retrofit + RxJava2
转载请标明出处:http://blog.csdn.net/xuehuayous/article/details/78058170;本文出自:【Kevin.zhou的博客】前言:现在网络访问已经基本都是Retrofit + RxJava了,只不过有一些还是使用的RxJava1,比如我们目前的项目。为毛不升级为RxJava2,项目还是比较庞大的,改起来还是要费时费力,还要QA全覆盖区测试等等...
2017-09-21 23:23:45 951
原创 优雅地使用SharedPreferences
好久没写过博客,感觉有些荒废了。过年之后就一直大小需求不断也一直没空闲,项目就这样在不断尝试中发展。 相信大家经常使用SharedPreferences来进行简单数据的存储,也肯定对其有自己的封装。近一两年运行时注解非常火热,那我们能不能使用它对我们的SharedPreferences进行封装呢?
2017-09-14 22:47:46 557
原创 Android网络编程之二:Okhttp Call封装
Okhttp友好地提供了异步请求,但是它的回调是在访问的当前线程。由于Android不允许在主线程访问网络,所以返回的数据不能直接用来更新UI,那么是否可以进行一些封装使之在子线程访问回数据调到主线程呢?
2017-02-07 10:25:33 4800 5
原创 Android网络编程之一:原生网络访问简单封装
转载请标明出处: http://blog.csdn.net/xuehuayous/article/details/54143487 本文出自:【Kevin.zhou的博客】前言:转眼间2017了,去年给自己定的一周一篇博客被拖成了一月一篇,后来忙着找工作也荒废了。竟然还被CSDN博客之星提名,又点燃了撸博客的激情。 作为一个android codder,网略访问基本上在项...
2017-01-06 22:36:06 3613
原创 Android 本地HTML屏幕适配的一种方案
前言:在Android开发中WebView加载网页,网页的适配应该是前端来处理的,毕竟客户端的对网页的控制是有限的。但是如果有一个本地的网页而且该网页的body是固定宽度的,让我们去适配所有设备还是比较头疼的。
2016-10-08 16:02:37 5484
原创 Android HTML5 audio autoplay无效问题
在android HTML5 开发中有不少人遇到过 audio 标签 autoplay在某些设备上无效的问题,网上大多是讲怎么在js中操作,即在特定的时刻调用audio的play()方法,在android上还是无效。
2016-09-08 21:08:50 11007 2
原创 Android 屏幕适配的一种方案
转载请标明出处:http://blog.csdn.net/xuehuayous/article/details/51671937本文出自:【Kevin.zhou的博客】前言:在《Android 关于屏幕的一些事儿》中最后提到了开发中我们比较头疼的问题--屏幕适配,本文将提供一种比较简单粗暴并且行之有效的解决方案。一、问题回顾 《Android 关于屏幕的一些事儿》中详细分析了...
2016-06-14 15:12:26 2517
原创 Android 上传图片到JavaWeb服务器
前言:在上一篇博客《Android 拍照、选择图片并裁剪》中主要说明了在Android中图片裁剪的一种方式,当然我们裁剪图片的最终目的是为了上传服务器,最常用的是设置用户头像。即用户在客户端拍照或者选择图片后上传服务器,服务器返回图片在服务器的地址,然后再携带用户信息与头像地址发送请求到服务器修改用户信息。或者上传图片到服务器的时候即携带用户信息,这样一次网略请求就可以搞定了。要根据不同的需求灵活
2016-05-19 13:50:59 25358 14
原创 Android 拍照、选择图片并裁剪
前言:前段时间做项目用到了图片裁剪,调用系统裁剪图片,结果在我的小米3上一直有问题,裁剪界面打不开,在其他设备上没问题,于是研究其他软件是怎么做的,淘宝的裁剪图片是自己做的,当然没问题,京东的是调用的系统的也是打不开裁剪界面。但是不知道为什么会出现这个问题,在其他小米设备上貌似没有问题。看来调用系统的裁剪图片还是不靠谱的。一、 uCrop项目应用
2016-05-05 17:38:22 46612 46
原创 Android UltimateRecyclerView优雅地使用RecyclerView
前言:大家都在更青睐于使用RecyclerVIew来替代ListView,但是在使用的时候我们会发现ListView的一些常用方法在RecyclerView中没有,比如添加头部、尾部。而且在刷新加载方面ListView的封装也比较多,如我之前常用的PullToRefreshListView,之前也在PullToRefresh项目上做过支持RecyclerView,但是效果还是不能让人满意。于是想写
2016-04-15 10:00:48 24696 6
原创 Android 打造底部导航控件
前言:原本计划写一些View绘制的博客的,最近比较忙,加上我哥想做网站和一个库存管理的客户端,服务器、后台在摸索中前进,博客的事情一拖再拖。前段时间写底部导航的时候心血来潮把它封装下吧,懒得以后每次写一堆无聊的东西。直接拿过来用。一、 最终效果 按照以前博客的风格,我们先看下最终实现的效果: 通过以上可以看到,图一是简单的使用,图二、图三
2016-03-18 17:12:19 7490 1
原创 Android LayoutInflater源码解析
前言:在《Android setContentView源码解析》中解析中遇到我们设置的xml布局通过布局填充器LayoutInflater填充为View,并加载到mContentParent。关于LayoutInflater的原理没有涉及,那么这篇就主要去分析下LayoutInflater的源码。一、 Pull解析器简单回顾 由于LayoutInfla
2016-02-03 15:33:10 3507 1
原创 Android setContentView源码解析
前言:在《Android 关于屏幕的一些事儿》中的最后提到了希望做一个屏幕适配的帮助类,这段时间我们内核组一个IOS的哥们在封装3D跨平台内核,也问起我一些关于Android屏幕的事情,身边都是大牛,越来越感觉自己小白了。一、 闲扯 以下几篇博客想写写关于View的一些事情,为什么会有这个想法呢?是我之前想起来一个简单的解决屏幕适配的方法,由xml布局填充
2016-02-01 16:36:07 3268
原创 Android 关于屏幕的一些事儿
前言:android数以千计的分辨率令我们开发者头痛不已,那么我们能不能解开它的面纱来欣赏一下它的本质呢?以下就带大家进行这么一场美妙的观光。一、概述 Android的屏幕适配是一个比较受关注的问题,再加上UI、UE一般是按照IOS出一套然后Android也是对照着去做,给美工小妹妹想要讲清楚dp是一件比登天还难的事情。先来了解下这几个点位之间的关系。
2016-01-27 21:30:49 4378 3
原创 Android 手把手教你开发轮转大图控件
前言:相信大家肯定都在项目开发中或多或少的接触过轮转广告图,有些朋友也自己写过。其实是比较初级的东西,是去年在做交行客户端维护时将Gallery的实现替换为ViewPager的一种方案。经过朋友们以及在其他项目的使用,功能不断完善,使用也更简单。一、 最终效果 按照以前博客的风格,我们先看下最终实现的效果: 二、 需求 我们希
2016-01-14 17:46:39 5726 2
原创 Android RecyclerView添加头部和尾部
前言:在使用RecyclerView替换之前常用的ListView开发的时候,我们会发现一个问题,RecyclerView中没有提供给我们添加头部尾部的方法,那么我们就可以参考ListView的实现方式来为RecyclerView扩展,使其支持添加头部和添加尾部。一、 最终效果 我们希望RecyclerView提供如下两个方法,addHeaderView(View v
2016-01-11 17:29:35 16688 14
原创 Java 算法 JSON Bean相互转化及JSON生成实体类
前言:之前解析JSON数据的时候使用的是GSON,相信大家已经非常熟悉,在封装开源控件的时候觉得GSON还是太重了而且别人在使用的时候不一定用这个解析框架,那就自己写一个解析的工具吧。一、概述 将JSON封装到Bean对象,就是将JSON所对应的数据一一赋值到实例对象上,那么可以逆向过来,看该Bean对象有哪些字段,然后用字段的名称去JSON中去查找值,再将查询到的赋值到该
2016-01-11 11:26:11 17952
原创 Android PullToRefresh 完全解析
PullToRefresh是很多项目都使用的刷新加载框架,大多数情况下我们不需要对源码做任何调整,它提供的强大配置功能就足以满足我们的需求,而且框架已经相当稳定,正因如此受到大家的欢迎! 下面会分几篇博客来介绍PullToRefresh框架的原理,以及如何在框架基础上进行扩展。前三篇主演将框架原理,后两篇来讲怎样扩展。 《PullToRefresh 分析之
2015-12-24 15:57:24 8090 9
原创 Android PullToRefresh 分析之五、扩展刷新加载样式
前言:接着上一篇《PullToRefresh 分析之四、扩展PullToRefreshRecyclerView》,这一篇主要分析如何扩展刷新加载样式,来创建各式各样的刷新加载效果。一、 闲扯 我们在《PullToRefresh 分析之二、UI结构》提到刷新加载的样式默认的两种样式如下:、 但是我们的需求或许是这样的:
2015-12-24 15:26:02 7641 10
原创 Android PullToRefresh 分析之四、扩展RecyclerView
前言:接着上一篇《PullToRefresh 分析之三、响应手势事件》,这一篇主要分析如何扩展PullToRefreshBase,来创建各式各样的刷新加载内容区域。一、 回顾 我们在第二篇《PullToRefresh 分析之二、UI结构》中提出了四个问题,只是简单粗暴的说了怎么解决,没有去看源码,下面先把这四个问题再拿出来:刷新加载的方向是怎
2015-12-23 15:31:15 16441 14
原创 Android PullToRefresh 分析之三、手势响应
前言:接着上一篇《PullToRefresh 分析之一、初步认识PullToRefresh框架》,这一篇主要分析是如何响应手势事件的,即我们手指滑动的时候促发的一系列响应,该篇将详细讲清楚。一、 问题思考 我们首先来思考下如果让我们做手势响应要考虑哪些问题, 我们先提出几个问题: 向下滑动时如何判断滑动到了头部? 滑动到头部之后是马上就促发
2015-12-18 15:49:39 3883
原创 Android PullToRefresh 分析之二、UI结构
前言:接着上一篇《PullToRefresh 分析之一、初步认识PullToRefresh框架》,这一篇主要分析UI结构,尽可能每一篇只说一点,然后将该点讲解清楚。一、 问题思考 我们首先把上一篇的一个图拿过来,来分析这三段,如果让我们封装一个刷新加载框架应该怎样写,首先提出几个问题: 刷新加载的方向是怎样的,通常的是竖向,万
2015-12-18 15:34:42 4207
原创 Android PullToRefresh 分析之一、初识PullToRefresh
前言:虽然刷新加载的开源框架有很多,但是还是觉得PullToRefresh最好用,已与扩展,可配置项也比较多。接下来会用一系列博客来分析该框架的使用以及扩展。一、 闲扯相信大家都有一批自己收藏的刷新加载框架,样式千变万化,效果炫酷。但是真正用的时候就是那几样,应为我们的需求是这样的,“你给我做一个跟微博样的刷新”、“京东的刷新效果不错,我们仿一仿”。当我们听到之后的心情是这样的
2015-12-17 15:13:15 7438 1
原创 Android Fragment学习之二、Fragement的使用方法
一、概述每一个Activiy都有一个Fragment的管理器FragmentManager来管理包含的Fragment。在API 11以上可以通过getFragmentManager();来获取,在API 11 以下,需要继承V4包中的FragmentActivity,可以通过调用getSupportFragmentManager();来获取。Fragment Manager就可以来管理F
2015-04-19 22:21:26 1733
Adnroid-MVVM-demo
2018-09-21
Android 拍照、选择图片并裁剪
2016-05-05
Fragment动态加载
2015-04-19
Fragment静态调用
2015-04-19
Fragment生命周期讲解
2015-04-19
Universal-Image-Loader示例Demo
2014-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人