Android ReplacementSpan 文字对齐问题

项目中需要在TextView中高亮显示‘@人员的名称’,实现方法采用自定义ReplacementSpan,遇到高亮的文字与文本对齐问题。解决方案: ReplacementSpan的draw方法实现@Override public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, float x,...
阅读(172) 评论(0)

Android retrofit 日志拦截器

背景在使用Android retrofit+rxjava时,想获知网络请求的一些参数,方便调试,比如:请求地址、请求响应时间、请求响应消息体等内容,虽然部分可以通过每个接口进行获知,但是这样极其不方便,那么有没有可以统一设置的方法呢?请接下去看。日志拦截器retrofit是使用okhttp3,做为网络请求,okhttp3有个Interceptor接口,可以对请求和响应进行拦截。通过这个机制,我们可以...
阅读(4184) 评论(3)

[置顶] 记一次内存泄露优化过程

背景项目目前存在使用久了或者重复打开关闭某个页面,内存会一直飙升,居高不下,频繁发生GC。静置一段时间后,情况有所改善,但是问题依旧明显,如图1-1、1-2。 图1-1.操作时的内存使用情况 图1-2.静置时的内存使用情况如上图1-1,是通过Android Studio查看内存(灰色)和CPU(红色)使用情况,可以看出内存有发生抖动并且是处于比较高的状态,再者,从logcat可以看到一直发生GC...
阅读(6523) 评论(4)

关于 Android 进程保活,你所需要知道的一切

出处早前,我在知乎上回答了这样一个问题:“怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?”。关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是极其不靠谱。前段时间,Github 还出现了一个很火的“黑科技”进程保活库,声称可以做到进程永。怀着学习和膜拜的心...
阅读(837) 评论(0)

ListView 局部刷新

概述在使用ListView的时候,我们都会对列表数据进行更新,当数据变化时,我们会调用adapter的notifyDataSetChange方法去刷新列表。但是,该刷新方法是使整个列表都更新一遍(调用了adapter的getView方法)。而,我们往往只是更新了item中的某一项数据,如果刷新整个列表是不是显得太过于浪费了,特别是对于列表中有图片要显示的情况下,就会造成每次notifyDataSet...
阅读(936) 评论(0)

使用Android Studio发布私有库到仓库中心

介绍当在我们这行积累到一定程度,都会有自己的一些代码库,这些代码被多个项目使用。之前的做法是每次到新的项目中,就会把之前的代码拷贝过来,升级一下,或许会把一些纯java代码打包成jar包文件,这样项目中只要引用这个jar包就可以了,但是在Android中,我们可能还会用到一些资源文件,这样再想打包成jar包就比较麻烦了。再再升级下,我们可以使用Android Studio生成aar文件,这样就避免了...
阅读(1278) 评论(2)

[置顶] Jenkins构建Android项目持续集成之findbugs的使用

题外话这篇本来和之前的系列要一起出的,但是因为中间公司要发布一个版本,给耽搁了,今天工作做完了,又闲了下来。所以就又来继续jenkins构建Android项目持续集成系列的findbugs篇。Findbugs简介关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍。findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。这组缺陷模...
阅读(3943) 评论(5)

[置顶] Jenkins构建Android项目持续集成之单元测试及代码覆盖率

单元测试  在软件开发中一直在推崇TDD(测试驱动开发),但是一直不能被有效的执行或者并不是真正的测试驱动开发(先开发后写单元测试),因为我们懒!而Android开发又是大多应用层面的开发,很多都是和视图层紧密相连的,业务逻辑和view相绑定,这导致编写单元测试有相当大的困难,因此就我项目而言,只针对工具类、服务端API编写单元测试。关于Android Studio如何编写单元测试并运行,可以看之前...
阅读(6258) 评论(13)

[置顶] Jenkins构建Android项目持续集成之创建项目

新建项目前面,已经介绍了,系统相关配置,接下来就可以开始创建项目了。选择新建—>构建一个自由风格的软件项目,然后填写项目名称。项目如下:注意:项目名称不能包含有中文,否则在跑job的时候会出错,所以上图的项目名是错误的,在此修正。项目配置 源码管理 在Git->Repository URL,填入项目的git仓库地址,图上的地址是我的github地址.选择的是master分支,你也可以填写自己的...
阅读(4592) 评论(8)

[置顶] Jenkins构建Android项目持续集成之系统配置篇

用户设置jenkins有自有的用户数据库,为了安全考虑,可以启用用户注册,使用权限控制登录。 切记,授权策略要先选择“登录用户可以做任何事”,因为现在还没有任何用户,不能指定管理员,设置之后保存退出。 填写注册信息。然后使用刚才注册的用户登录,”系统管理—>Configure Global Security”到安全管理界面 将刚才的授权策略改为“安全矩阵”,在这个矩阵里,可...
阅读(3471) 评论(1)

[置顶] 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、插件下载   这里上传了我...
阅读(6762) 评论(4)

[置顶] Jenkins构建Android项目持续集成之简介篇

瞎扯  2014年毕业的,到现在出来工作一年半左右。在大学学的专业是网络工程,大三下学期跟着老师做了四五个月的web开发,后来自学了Android,选择它是因为自己的一个兴趣,所以后来工作顺理成章的找了Android开发的工作。到今年六月初的时候,第一次换了工作,来到新公司后,第一次接触到了项目持续集成的概念,并且在来到新公司开始的一两个月,老大让我去了解学习了下,这里我整理了下我所知道的关于Jen...
阅读(2759) 评论(3)

使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突

概述我们常常会遇到一个ScrollView里面会嵌套ListView的情况,但往往你会发现,ListView和ScrollView的滚动时间会有冲突问题。那么如何解决呢?这是本文的意义所在。使用LinearLayout实现ListView自定义一个View,我这取名为LinearLayoutForListView。直接看代码:public class LinearLayoutForListView...
阅读(1214) 评论(0)

浅谈Android数据库版本升级及数据的迁移

概述Android开发涉及到的数据库采用的是轻量级的SQLite3,而在实际开发中,在存储一些简单的数据,使用SharedPreferences就足够了,只有在存储数据结构稍微复杂的时候,才会使用数据库来存储。而数据库表的设计往往不是一开始就非常完美,可能在应用版本开发迭代中,表的结构也需要调整,这时候就涉及到数据库升级的问题了。数据库升级数据库升级,主要有以下这几种情况: 增加表 删除表 修改表...
阅读(2345) 评论(0)
    个人资料
    • 访问:534122次
    • 积分:4349
    • 等级:
    • 排名:第6896名
    • 原创:105篇
    • 转载:22篇
    • 译文:5篇
    • 评论:307条
    关于我
    博客专栏
    最新评论