![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
我的博客-移植
JusterBetter
不要被限制思维
展开
-
你应该知道的android单元测试
介绍setup:即new 出待测试的类,设置一些前提条件执行动作:即调用被测类的被测方法,并获取返回结果验证结果:验证获取的结果跟预期的结果是一样的Junit4java测试框架 testCompile ‘junit:junit:4.12’ @Before @Test (expected = IllegalArgumentException.class) 验证是否抛该原创 2017-03-17 11:09:35 · 725 阅读 · 0 评论 -
【持续更新】adb常用命令
参考https://wiki.cyanogenmod.org/w/Adb_–help记录一些以后常用的adb命令adb reboot 重启adb reboot bootloader 重启到刷机模式adb reboot recovery 重启到恢复模式adb install -r 保留数据缓存,重新安装apkadb uninstall -k 卸载apk,但保留数据缓存adb shell原创 2017-03-17 11:01:59 · 660 阅读 · 0 评论 -
【cs基础】CPU是怎样执行代码的
基础概念程序是指令和数据的组合体,被复制到内存才能运行。内存地址是保存指令和数据的场所,通过地址标记。CPU 能识别和执行的只有机器语言。CPU 结构CPU 内部由寄存器、控制器、运算器和时钟四个部分构成,由电流信号相互连通 - 寄存器: 保存指令、数据 - 控制器: 读取内存输入寄存器,控制指令流转 - 运算器: 运算寄存器中的数据 - 时钟:发出计时信号,代表运算速度寄存器程序是原创 2017-03-17 11:10:53 · 1377 阅读 · 2 评论 -
Rx常用操作符
常用操作符Observable.from()它接收一个集合作为输入,然后每次输出一个元素给subscriber,将集合依次发送,map用来把把一个事件转换为另一个事件的flatmap接收一个Observable的输出作为输入,同时输出另外一个Observableconcatmap类似flatmap,区别是遵循事件的顺序switchmapobservable发送新数据时,旧数据订阅还原创 2017-03-17 11:08:03 · 991 阅读 · 0 评论 -
Java定时总结(Rx一行代码解决orz)
定时任务Rxpublic class RxUtils { static public Observable<Integer> countDown(int time) { if (time < 0) time = 0; final int countTime = time; return Observable.interval(0, 1, Ti原创 2017-03-17 11:07:05 · 563 阅读 · 0 评论 -
【简明】To learn Redux
Action 有事情发生了Store 数据的唯一来源, store.dispatch()将action传到storeAction本质是普通对象 ,type字段,action type字段…结构自定bindActionCreators()自动把多个action创建函数绑定到dispatch方法上Reducer 更新state纯函数,接收旧的state和action,返回新的state严格的原创 2017-03-17 11:06:15 · 366 阅读 · 0 评论 -
Tinker 处理patch流程
Tinker 处理patch流程按推荐方式使用编译注解生成Application1. Application 加载已合成的patch加载patch 入口从注册的Application的onBaseContextAttached()开始 loadTinker()方法即是tinker 加载patch的逻辑,之后调用代理ApplicationLike的原有逻辑,方便修改反射生成TinkerLoader原创 2017-03-17 11:04:51 · 794 阅读 · 0 评论 -
aidl简单的使用步骤
基本使用编写.AIDL文件,定义需要的接口新建AIDL文件,编写相应的方法新建一个进程间传递对象,实现Parcelable新建一个与传递对象同名的AIDL文件,简单声明Pacelable即可自动编译之后,可在build/generated/aidl目录下找到AIDL文件对应的Java文件实现定义的接口继承自动生成的Binder类,实现其中的方法即可onTransact ()权限认证将接原创 2017-03-17 10:58:14 · 402 阅读 · 0 评论 -
RxJava进度学习
添加依赖compile ‘io.reactivex:rxjava:1.1.6’ compile ‘io.reactivex:rxandroid:1.2.1’Lambda表达式: step1.在根目录下的build.gradle添加:dependencies { ... classpath 'me.tatarka:gradle-retrolambda:3.2.5' ...}step原创 2017-03-17 10:54:43 · 394 阅读 · 0 评论 -
StateMachine 的简单使用
StateMachine 的简单使用步骤源码的frameworks/base/core/java/com/android/internal/util里面把StateMachine.java 、State.java 、IState.java复制到project目录中自定义StateMachine类继承StateMachine 自定义状态State继承State:重写enter、processMs原创 2017-03-17 10:53:33 · 5953 阅读 · 0 评论 -
View的绘制流程简述
onMeasureView的绘制流程是从ViewRoot(继承Handler)的performTraversals中内部调用measure方法开始measure() 方法接收widthMeasureSpec和heightMeasureSpec两个参数,两个参数由performTravelsals内部getRootMeasureSpec得到MeasureSpec由sp原创 2017-03-17 10:49:12 · 594 阅读 · 0 评论 -
关于Java并发的常用类回顾
volatile 关键字变量声明为volatile,表示这个变量是不稳定的,每次使用都去主存中读取Volatile 修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值问题:两个线程分别读写volatile变量,线程A写入变量,线程B读取的时候会看到写入volatile变量之前所有可见的共享变量Volatile一般情况下不能代替sychronized,因为volatile不原创 2017-03-17 11:03:20 · 332 阅读 · 0 评论