Android
文章平均质量分 94
周文凯
宅,是一种生活的态度;技术,是永恒的追求!
展开
-
Android 关于屏幕的一些事儿
前言:android数以千计的分辨率令我们开发者头痛不已,那么我们能不能解开它的面纱来欣赏一下它的本质呢?以下就带大家进行这么一场美妙的观光。一、概述 Android的屏幕适配是一个比较受关注的问题,再加上UI、UE一般是按照IOS出一套然后Android也是对照着去做,给美工小妹妹想要讲清楚dp是一件比登天还难的事情。先来了解下这几个点位之间的关系。原创 2016-01-27 21:30:49 · 4398 阅读 · 3 评论 -
一种优雅的方式实现RecyclerView条目多类型
转载请标明出处:http://blog.csdn.net/xuehuayous/article/details/80021325;本文出自:【Kevin.zhou的博客】下面以一个故事来讲来说明这中方式是怎么实现的。放弃vlayout大家都了解一般首页是非常复杂的,去年初项目引入vlayout来解决首页复杂布局的问题,后来对vlayout和databinding结合进行了封装,使...原创 2018-04-23 14:40:44 · 15487 阅读 · 46 评论 -
认识Android中的双向绑定
转载请标明出处:http://blog.csdn.net/xuehuayous/article/details/81100571;本文出自:【Kevin.zhou的博客】前言:在和一些朋友&网友聊的过程中,发现很多人对于Android中的双向绑定还不太了解,所以MVVM架构就比较难以向大家描述清楚,那么先来了解一下Android中的双向绑定。什么是双向绑定双向绑定到底是什...原创 2018-09-18 21:54:56 · 5042 阅读 · 0 评论 -
如何在Android Studio中发布本地maven库
由于Android项目的分模块思想,在一个Android Studio项目中通常会有多个Module,一般情况下直接以Module Dependencies的方式依赖不同Module,这也是项目分模块初期的一种形态。当然最好的方式是可以把依赖库Module发布到maven服务器,但是有些代码是不允许发布到外网maven库的,这时可以搭建一个公司内的maven服务器,但是如果公司没有多余的服务器给你...原创 2018-08-17 13:54:15 · 5725 阅读 · 0 评论 -
Android中MVVM是什么?
前言:去年对项目的架构进行了调整,迁移到了MVVM架构,还好之前的代码写的还算清晰,在调整的过程中也没有遇到太多的问题。改造的过程中也查找了大量资料,不管是架构相关的还是针对MVVM的代码或文章,发现在Android中对于MVVM大家还没有达成共识。或许每一种方式在固定的业务场景中都是有益的,并没有谁对谁错。之前在技术群里也听到有很多人想了解MVVM,正好我也总结下希望对想了解的朋友能起到帮助作用...原创 2018-09-20 14:16:32 · 2143 阅读 · 1 评论 -
ViewPager导航的一些想法
关于ViewPager的导航,网上的自定义控件非常多,大部分能够满足我们的需求,而且每一个开源出来的控件都有非常多的自定义属性,尽量让使用者可以更加全面的控制样式。...原创 2018-10-19 11:17:15 · 517 阅读 · 4 评论 -
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 · 9723 阅读 · 2 评论 -
优雅地处理MVVM中各层次关系
前言:相信大家对MVVM架构都有过一定的了解,如果不太了解的朋友可以看下我之前写的《Android中MVVM是什么?》。整体分为View、ViewModel、Model三层,View层处理用户交互,ViewModel层进行业务处理;Model层进行数据处理。那么如何进行优雅地处理他们之间的关系呢?分层关系首先来看下它们之间的关系,如下图所示:通过上图我们可以看出:View持有ViewM...原创 2018-11-19 17:21:57 · 3653 阅读 · 0 评论 -
Android中利用前台服务白色保活
进程优先级进程我们都知道,每一个APP进程(process)都拥运行在独立的虚拟机(virtual machine)中,这样就保证了每个APP的独立。在系统资源紧张的时候会选择一部分进程杀掉释放内存,那么系统是如何选取杀掉哪些留下哪些呢?这就涉及到进程的优先级。优先级为了对运行的进程进行统一管理,系统根据进程的不同状态进行了分离,分为如下五个状态:前台进程 (Foreground pro...原创 2018-12-18 14:57:05 · 4265 阅读 · 0 评论 -
adb常用命令
adb 查看最顶层activity名称原创 2018-12-19 10:15:14 · 260 阅读 · 0 评论 -
编写脚本统计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 · 726 阅读 · 0 评论 -
Android 一种优雅的方式避免用户快点击(Databinding)
在Android开发中比较常见的交互是响应用户的点击进行下一步的操作,作为老司机的我们都知道,即便不是用户故意快速点击也可能会出现多次响应的情况,尤其需要等待异步处理结果时,这是不能忍受的。突出体现是向服务端连续提交了两次请求。典型方案利用时间差private int lastId;private long lastTimeStamp;public boolean isValidClick(...原创 2018-03-06 16:41:10 · 2761 阅读 · 0 评论 -
Android setContentView源码解析
前言:在《Android 关于屏幕的一些事儿》中的最后提到了希望做一个屏幕适配的帮助类,这段时间我们内核组一个IOS的哥们在封装3D跨平台内核,也问起我一些关于Android屏幕的事情,身边都是大牛,越来越感觉自己小白了。一、 闲扯 以下几篇博客想写写关于View的一些事情,为什么会有这个想法呢?是我之前想起来一个简单的解决屏幕适配的方法,由xml布局填充原创 2016-02-01 16:36:07 · 3276 阅读 · 0 评论 -
Android LayoutInflater源码解析
前言:在《Android setContentView源码解析》中解析中遇到我们设置的xml布局通过布局填充器LayoutInflater填充为View,并加载到mContentParent。关于LayoutInflater的原理没有涉及,那么这篇就主要去分析下LayoutInflater的源码。一、 Pull解析器简单回顾 由于LayoutInfla原创 2016-02-03 15:33:10 · 3513 阅读 · 1 评论 -
Android 打造底部导航控件
前言:原本计划写一些View绘制的博客的,最近比较忙,加上我哥想做网站和一个库存管理的客户端,服务器、后台在摸索中前进,博客的事情一拖再拖。前段时间写底部导航的时候心血来潮把它封装下吧,懒得以后每次写一堆无聊的东西。直接拿过来用。一、 最终效果 按照以前博客的风格,我们先看下最终实现的效果: 通过以上可以看到,图一是简单的使用,图二、图三原创 2016-03-18 17:12:19 · 7496 阅读 · 1 评论 -
Android UltimateRecyclerView优雅地使用RecyclerView
前言:大家都在更青睐于使用RecyclerVIew来替代ListView,但是在使用的时候我们会发现ListView的一些常用方法在RecyclerView中没有,比如添加头部、尾部。而且在刷新加载方面ListView的封装也比较多,如我之前常用的PullToRefreshListView,之前也在PullToRefresh项目上做过支持RecyclerView,但是效果还是不能让人满意。于是想写原创 2016-04-15 10:00:48 · 24706 阅读 · 6 评论 -
Android 上传图片到JavaWeb服务器
前言:在上一篇博客《Android 拍照、选择图片并裁剪》中主要说明了在Android中图片裁剪的一种方式,当然我们裁剪图片的最终目的是为了上传服务器,最常用的是设置用户头像。即用户在客户端拍照或者选择图片后上传服务器,服务器返回图片在服务器的地址,然后再携带用户信息与头像地址发送请求到服务器修改用户信息。或者上传图片到服务器的时候即携带用户信息,这样一次网略请求就可以搞定了。要根据不同的需求灵活原创 2016-05-19 13:50:59 · 25370 阅读 · 14 评论 -
Android 拍照、选择图片并裁剪
前言:前段时间做项目用到了图片裁剪,调用系统裁剪图片,结果在我的小米3上一直有问题,裁剪界面打不开,在其他设备上没问题,于是研究其他软件是怎么做的,淘宝的裁剪图片是自己做的,当然没问题,京东的是调用的系统的也是打不开裁剪界面。但是不知道为什么会出现这个问题,在其他小米设备上貌似没有问题。看来调用系统的裁剪图片还是不靠谱的。一、 uCrop项目应用原创 2016-05-05 17:38:22 · 46669 阅读 · 46 评论 -
Android 屏幕适配的一种方案
转载请标明出处:http://blog.csdn.net/xuehuayous/article/details/51671937本文出自:【Kevin.zhou的博客】前言:在《Android 关于屏幕的一些事儿》中最后提到了开发中我们比较头疼的问题--屏幕适配,本文将提供一种比较简单粗暴并且行之有效的解决方案。一、问题回顾 《Android 关于屏幕的一些事儿》中详细分析了...原创 2016-06-14 15:12:26 · 2519 阅读 · 0 评论 -
Android HTML5 audio autoplay无效问题
在android HTML5 开发中有不少人遇到过 audio 标签 autoplay在某些设备上无效的问题,网上大多是讲怎么在js中操作,即在特定的时刻调用audio的play()方法,在android上还是无效。原创 2016-09-08 21:08:50 · 11024 阅读 · 2 评论 -
Android 本地HTML屏幕适配的一种方案
前言:在Android开发中WebView加载网页,网页的适配应该是前端来处理的,毕竟客户端的对网页的控制是有限的。但是如果有一个本地的网页而且该网页的body是固定宽度的,让我们去适配所有设备还是比较头疼的。原创 2016-10-08 16:02:37 · 5505 阅读 · 0 评论 -
Android网络编程之一:原生网络访问简单封装
转载请标明出处: http://blog.csdn.net/xuehuayous/article/details/54143487 本文出自:【Kevin.zhou的博客】前言:转眼间2017了,去年给自己定的一周一篇博客被拖成了一月一篇,后来忙着找工作也荒废了。竟然还被CSDN博客之星提名,又点燃了撸博客的激情。 作为一个android codder,网略访问基本上在项...原创 2017-01-06 22:36:06 · 3623 阅读 · 0 评论 -
Android网络编程之二:Okhttp Call封装
Okhttp友好地提供了异步请求,但是它的回调是在访问的当前线程。由于Android不允许在主线程访问网络,所以返回的数据不能直接用来更新UI,那么是否可以进行一些封装使之在子线程访问回数据调到主线程呢?原创 2017-02-07 10:25:33 · 4807 阅读 · 5 评论 -
根据状态栏颜色亮度设置黑白字体(Android 6.0及以上版本)
前段时间看我们的APP顶部的状态栏还是默认的黑色,搭配上整体的白色背景,的确有点丑,改成白色的状态栏多显大气。背景颜色直到Android 5.0系统才提供了设置状态栏背景颜色的方法,使用StatusBarUtil库可以最低支持到Android 4.4,这个看起来是一个比较好的解决方案,但是状态栏的颜色如果改为白色,那么就看不到状态栏内的文字了。聪明的你肯定想到,把状态栏内的字体改为黑色的不就完了。...原创 2018-02-23 19:23:57 · 10934 阅读 · 5 评论 -
实现每日优鲜中RecyclerView多条目背景效果
前段时间看每日有限APP,看到一种挺有意思的效果,如下图所示。原创 2019-04-14 12:45:14 · 2047 阅读 · 2 评论