Android 进阶
文章平均质量分 86
画虎烂
每天反思,每天进步
展开
-
浅谈Android数据库版本升级及数据的迁移
概述Android开发涉及到的数据库采用的是轻量级的SQLite3,而在实际开发中,在存储一些简单的数据,使用SharedPreferences就足够了,只有在存储数据结构稍微复杂的时候,才会使用数据库来存储。而数据库表的设计往往不是一开始就非常完美,可能在应用版本开发迭代中,表的结构也需要调整,这时候就涉及到数据库升级的问题了。数据库升级数据库升级,主要有以下这几种情况:增加表删除表修改表原创 2015-07-29 16:21:06 · 5303 阅读 · 0 评论 -
Android ReplacementSpan 文字对齐问题
项目中需要在TextView中高亮显示‘@人员的名称’,实现方法采用自定义ReplacementSpan,遇到高亮的文字与文本对齐问题。解决方案: ReplacementSpan的draw方法实现@Override public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, float x,原创 2017-06-14 17:50:32 · 3627 阅读 · 0 评论 -
Android retrofit 日志拦截器
背景在使用Android retrofit+rxjava时,想获知网络请求的一些参数,方便调试,比如:请求地址、请求响应时间、请求响应消息体等内容,虽然部分可以通过每个接口进行获知,但是这样极其不方便,那么有没有可以统一设置的方法呢?请接下去看。日志拦截器retrofit是使用okhttp3,做为网络请求,okhttp3有个Interceptor接口,可以对请求和响应进行拦截。通过这个机制,我们可以原创 2016-06-22 15:17:53 · 8185 阅读 · 5 评论 -
Jenkins构建Android项目持续集成之Jenkins的安装篇
工具准备1、jenkins.war 可以去官网下载(http://jenkins-ci.org/)最新版本,下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war,如果下载不了,我在csdn上传了一份http://download.csdn.net/detail/a631855639/9335755 2、插件下载 这里上传了我原创 2015-12-08 11:47:33 · 12314 阅读 · 3 评论 -
关于 Android 进程保活,你所需要知道的一切
出处早前,我在知乎上回答了这样一个问题:“怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?”。关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是极其不靠谱。前段时间,Github 还出现了一个很火的“黑科技”进程保活库,声称可以做到进程永。怀着学习和膜拜的心转载 2016-04-20 10:13:57 · 1591 阅读 · 0 评论 -
记一次内存泄露优化过程
背景项目目前存在使用久了或者重复打开关闭某个页面,内存会一直飙升,居高不下,频繁发生GC。静置一段时间后,情况有所改善,但是问题依旧明显,如图1-1、1-2。 图1-1.操作时的内存使用情况 图1-2.静置时的内存使用情况如上图1-1,是通过Android Studio查看内存(灰色)和CPU(红色)使用情况,可以看出内存有发生抖动并且是处于比较高的状态,再者,从logcat可以看到一直发生GC原创 2016-04-25 14:15:19 · 8810 阅读 · 4 评论 -
ListView 局部刷新
概述在使用ListView的时候,我们都会对列表数据进行更新,当数据变化时,我们会调用adapter的notifyDataSetChange方法去刷新列表。但是,该刷新方法是使整个列表都更新一遍(调用了adapter的getView方法)。而,我们往往只是更新了item中的某一项数据,如果刷新整个列表是不是显得太过于浪费了,特别是对于列表中有图片要显示的情况下,就会造成每次notifyDataSet原创 2016-03-02 11:39:26 · 1776 阅读 · 0 评论 -
使用Android Studio发布私有库到仓库中心
介绍当在我们这行积累到一定程度,都会有自己的一些代码库,这些代码被多个项目使用。之前的做法是每次到新的项目中,就会把之前的代码拷贝过来,升级一下,或许会把一些纯java代码打包成jar包文件,这样项目中只要引用这个jar包就可以了,但是在Android中,我们可能还会用到一些资源文件,这样再想打包成jar包就比较麻烦了。再再升级下,我们可以使用Android Studio生成aar文件,这样就避免了原创 2016-01-28 18:03:49 · 3547 阅读 · 2 评论 -
Jenkins构建Android项目持续集成之简介篇
瞎扯 2014年毕业的,到现在出来工作一年半左右。在大学学的专业是网络工程,大三下学期跟着老师做了四五个月的web开发,后来自学了Android,选择它是因为自己的一个兴趣,所以后来工作顺理成章的找了Android开发的工作。到今年六月初的时候,第一次换了工作,来到新公司后,第一次接触到了项目持续集成的概念,并且在来到新公司开始的一两个月,老大让我去了解学习了下,这里我整理了下我所知道的关于Jen原创 2015-12-07 16:37:35 · 5814 阅读 · 3 评论 -
Jenkins构建Android项目持续集成之系统配置篇
用户设置jenkins有自有的用户数据库,为了安全考虑,可以启用用户注册,使用权限控制登录。 切记,授权策略要先选择“登录用户可以做任何事”,因为现在还没有任何用户,不能指定管理员,设置之后保存退出。 填写注册信息。然后使用刚才注册的用户登录,”系统管理—>Configure Global Security”到安全管理界面 将刚才的授权策略改为“安全矩阵”,在这个矩阵里,可原创 2015-12-09 16:02:52 · 7201 阅读 · 1 评论 -
Jenkins构建Android项目持续集成之创建项目
新建项目前面,已经介绍了,系统相关配置,接下来就可以开始创建项目了。选择新建—>构建一个自由风格的软件项目,然后填写项目名称。项目如下:注意:项目名称不能包含有中文,否则在跑job的时候会出错,所以上图的项目名是错误的,在此修正。项目配置源码管理 在Git->Repository URL,填入项目的git仓库地址,图上的地址是我的github地址.选择的是master分支,你也可以填写自己的原创 2015-12-11 18:53:05 · 8779 阅读 · 8 评论 -
Jenkins构建Android项目持续集成之findbugs的使用
题外话这篇本来和之前的系列要一起出的,但是因为中间公司要发布一个版本,给耽搁了,今天工作做完了,又闲了下来。所以就又来继续jenkins构建Android项目持续集成系列的findbugs篇。Findbugs简介关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍。findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。这组缺陷模原创 2015-12-29 14:54:37 · 7637 阅读 · 7 评论 -
Jenkins构建Android项目持续集成之单元测试及代码覆盖率
单元测试 在软件开发中一直在推崇TDD(测试驱动开发),但是一直不能被有效的执行或者并不是真正的测试驱动开发(先开发后写单元测试),因为我们懒!而Android开发又是大多应用层面的开发,很多都是和视图层紧密相连的,业务逻辑和view相绑定,这导致编写单元测试有相当大的困难,因此就我项目而言,只针对工具类、服务端API编写单元测试。关于Android Studio如何编写单元测试并运行,可以看之前原创 2015-12-14 22:33:20 · 13146 阅读 · 13 评论 -
使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突
概述我们常常会遇到一个ScrollView里面会嵌套ListView的情况,但往往你会发现,ListView和ScrollView的滚动时间会有冲突问题。那么如何解决呢?这是本文的意义所在。使用LinearLayout实现ListView自定义一个View,我这取名为LinearLayoutForListView。直接看代码:public class LinearLayoutForListView原创 2015-10-26 17:49:26 · 2659 阅读 · 0 评论 -
lib库实现UI定制化
背景随着公司项目越来越多,会使用到公共的UI组件,那么将组件抽离出来独立成一个lib库是有必要的。但是,不同的项目存在一定的差异化是不可避免的,这时候,如何在提高公共组件可复用性又可实现UI差异?那么UI定制化就是本文的重点。组件模块化组件模块化根据粒度大小,将其分为:控件模块化和功能模块化。控件模块化,就是将某个控件抽离出来,它仅仅用来显示效果,不包括业务逻辑;相对的,功能模块化,就是包含了业务逻原创 2017-10-16 08:54:05 · 1350 阅读 · 0 评论