android的Jni方法单元测试
本文记录:
使用cmake来构建android jni的c层代码。并使用android instrumented unit test 来测试jni方法和c层方法。
1 概述
jni方法为什么要用单元测试?
有的jni方法在项目里触发条件复杂,作为开发者需要像普通用户那样去操作触发对应逻辑才能测试到Jni方法,效率低下。而使用单元测试则可以比较高效率地测试比较难触发到调用jni的场景。
什么场景下用单元测试来测试jni方法?
理论上来说所有的代码都能够在单元测试的环境下被测试到,但是有时需要一些比较复杂的上下文,或者代码的上下文搭建不容易,而直接运行项目测试更简单,所以,不是所有的jni方
2020-06-06
单元测试
android单元测试
重新理解Java泛型
介于我在写业务代码的时候时,想用泛型来实现代码复用,但是由于接口较多,抽象程度较复杂,导致没有理清楚泛型的关系,因此重新学习理解Java泛型。
1 作用对象1.1 泛型类当泛型作用在类上,即一个类是一个泛型类的时候。泛型是类的参数。
例如:
我们创建一个有Id标志的数据类。无论类中的泛型参数T是什么类型的,这个类都有一个id。
public class IdData<T> {
String id;
T data;
}
当我们作为这个泛型类的客户时,我们要用泛型类。使用泛型类的时候,我们需要指定类的泛型参数,从而让这个泛型类因为泛型参数的不同而变成不同的类(虽
2020-06-01
Java
重新理解MeasureSpec
1 概述网上有许多非常好的文章都在介绍MeasureSpec的测量规则,但是没有介绍MeasureSpec的作用和应用场景。
MeasureSpec是一个int,他将SpecMode和SpecSize封装到了一起。
那么实际上MeasureSpec他是一个对:值和模式的一个封装。
在这里,size和mode是成对出现的,他们一起作用。
MeasureSpec可以翻译成:测量说明书。
他由手机屏幕的Window开始,将测量说明书生成并往下传递给DecorView,DecorView再生成自己的测量说明书,往下传递,不断递归,每个ViewGroup都根据父View的测量说明书和自己的尺寸,生成自
浅谈LayoutParams
0 概述LayoutInflater在Android开发中有大量的使用场景,例如:
Activity和Dialog的setContentView方法内部用LayoutInflater从xml文件中加载出View对象。
Fragment中用LayoutInflater创建一个View返回给Fragment。
RecylerView的每一个Item对应的ViewHolder在创建的时候,需要先用LayoutInflater创建出对应的Item的View。
其他的,我们自己创建View的场景,比如自定义View等。
那么你是否了解LayoutInflater在创建View的时候,是如何处理Vie
2020-05-26
View
gradle的properties文件
我们知道在gradle中可以用 gradle.properties文件来设置属性。一般.properties文件的位置是定义在和build.gradle和settings.gradle同级的目录下。
1 简单使用在gradle.properties中定义一个属性是这样的:
PRO_A=12
然后在构建脚本里就可以用到这个属性了:
task A(){
doLast{
println(PRO_A)
}
}
2 和ext属性的关系首先确定的是,gradle.properties中定义的属性是属定义他的gradle项目的project对象的属性的。
其次,在gradle
2020-05-11
Gradle
Android调试ViewTree工具.md
AndroidStudio自带的LayoutInspector在Android开发的时候,我们在调试复杂的UI界面上的问题的时候,有时希望借助AndroidStudio自带的调试工具:LayoutInspector来查看当前界面的View Tree。
没有遇到问题的话,他能出现这样的调试效果:
调试UI遇到的问题但是,当你的Activity的界面非常复杂,例如存在大量的View,存在视频,存在View动画等情况。这时这个调试工具就不生效了。
这时会遇到:
Error obtaining view hierarchy : There was a timeout error capturin
hexo搭建博客并将简书文章迁移
在经过多次的考虑后,我还是打算将所有的博客的数据由自己维护。因此找了一种比较简单的方式:hexo + github pages
迁移博客的原因
简书的博客没有文章的导航栏,我每次用Markdown写文章发布后,简书不会自带文章大纲,无法检索。
简书的曾经被叫停过一次,在那之后,简书的访问速度变慢了,我担心后面简书会挂掉,我的文章拿不出来。
简书的文章类型繁多,不是技术型的平台。当然我也看了其他很优秀的技术型平台,例如掘金和语雀。但是掘金不支持文章导出,语雀导出的文章貌似只有他们自家的语雀平台能够二次使用,不是Markdown类型的。因此放弃在第三方平台写博客了。
自己搭建博客,自己选主题和功能