android单元测试-界面篇
学习单元测试的方法是:百度-文章-公众号-android开发者官网-android官方dmeo-电子书 交叉来,看不懂就换一个地方看
android开发者官网一直在更新 单元测试相关的东西,百度搜索有关的视频教程几乎没有,文章有看不懂,让我觉得是不是单元测试很少人用,或者根本没有值得学习的必要。我希望之后的工作中能用到,并能为我的升职加薪提供希望。但是人家官网一直在更新相关的类,没事还是多看看官方的东西,紧跟技术前沿。单元测试官方demo:https://github.com/android/testing-samplesandroid开发者: https://developer.android.google.cn/
下边是根据官方demo来学习的:
fragment单元测试首先是单元测试fragment,我喜欢将界面都放到fragment里边,用一个activity去承载。当我看到demo里边可以单独测试一个fragment的时候,别提我有多惊讶了,简直是太强大了。项目里边不用写activity都行,单元测试可以单独就跑这一个fragment就行了。什么!你说怎么可能只跑一个界面 ...
利用docker技术进行部署
废了废了,两天入门docker,没有时间精通,学了能用,还有很多优化部署的东西也没来得及学。对于linux指令也不熟悉的我来讲,太难了。
start_docker.sh脚本 里边是从0开始的服务器环境部署,绝对有更方便的编写方式,奈何我刚入门,以后可能也不会在搞这个了。。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899echo 安装dockersudo apt updateapt install -y docker.ioecho 配置为国内镜像tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://v11xw ...
第18章 编程好帮手-代理模式
静态代理
123456789public class Client {public static void main(String[]args){// 构造一个小民....ILawsuit xiaomin = new XiaoMin ();// 构造一个代理律师并将小民作为构造参数传递进去 ILawsuit lawyer = new Lawyer(xiaomin);// ......省去一些代码.....}}
动态代理123456789101112public class DynamicProxy implements InvocationHandler {private Object obj;// 被代理的类引用public DynamicProxy (Object obj){this.obj= obj;}@Overridepublic Object invoke(Object proxy,Method method,Object[]args)throws Throwable {//调用被代理类对象的方法 ...
Binder机制
最好的binder机制讲解-不是我这篇啊 点击进入该作者的文章看了这篇文章才彻底搞明白binder通信机制,都说这篇文章是讲解binder机制最好的,我看了两遍实在看不懂,冷静了一会之后,想自己怎么也是android开发者,不搞懂不行啊,下了狠心一个字一个字的扣,坚决不跳着文字看,结果看了两天,把这文章看完了。。。。也就看了不到10遍吧。
简介
摘抄自《android开发艺术探索》
Binder是android中的一个类,它实现了IBinder接口。
从IPC角度来说,Binder是android中的一种跨进程通信方式,Binder还可以理解为一种虚拟的物理设备,他的设备驱动是/dev/binder,该通信方式在linux中没有。
从android framwork角度来说,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager,等等)和相应ManagerService的桥梁。
从android应用层来说,Binder是客户端和服务端进行通信的媒介,当bindService的时候,服务端会返回一个包 ...
2020 summary
2020年或许我们都有不完美 但2021年我会更努力 为自己。
ps:以下都是要在公司开年终总结的时候写的,有点官方。今年就做了一个项目:
1月份做了一个心里评测模块app拿出去吹了一把,当时还只有选项是“是”和“否”的;-这是从之前想要创业app中拿来练手的app改的,说明员工有创业的想法不可怕,说不定什么时候就能把储备粮拿出来了哈哈哈。
2月份智能终端第一版接口开发和界面 用了xui的框架进行界面开发,但是不清楚框架源码设计导致出了很多问题出现在界面跳转上。- 不应该随便乱拿不熟悉的框架,而且这框架还很重。
3月 开发 界面修改
4月 开发 调试 界面修改
5月 调试测试
6月 讨论新需求,新界面
7月 两人共同开发android端,重构,后台开发 -android端架构图也没有及时更新,希望以后能有时间写出uml图例,及时更新各种文档。
8月 继续开发
9月 测试总出现问题
10月 测试用例编写,社区矫正项目技术整理安排,智能终端新功能开发-没有规范的技术开发流程文档,几乎是一人写一个,不统一。新加入的成员无法立即上手开发。 详细设计说明书概要设计说明书 希望以后能有机会 ...
清单革命
现状还没写就感觉这篇文章会很丧,这里边是懒惰,堆起来干不完的事情,自控力差的体现。因此,需要好好整理一下了。上一次整理是几年之前了???没错,是几年之前了。。。。。直到我发现,在我买了电子阅读器之后也激发不了我任何的激情之后,我慌了。在我每天想到的只是怕去另一个世界,今天该干些啥,干的工作没有任何激情之后,我慌了。在我有时候躺在床上突然想到:活着有啥意思,还不如去另一个世界后,我慌了。在我躺在床上或者沙发上坐着,玩着自走棋和匹配竞技一玩就半天,然后休息的时间都是这样,周末或者晚上,明明知道还有一堆衣服没洗碗没刷的情况下,还要继续玩了好几个小时之后,我慌了。
我明明还有很多事情要做的呀,越来越恶性循环了。
以下是还没有做的事情:
还有51节健身课,明年5月份健身卡到期,5月份左右也要搬家了,离得远了,这些课有可能要浪费掉。
投资理财一直没有资金和时间去接触和投入。还说要根据学到的知识做个app以便于自己投资简单化,一年了。
唱歌学习还在节奏和do re mi fa so la xi阶段,二阶段声腔一拿给老师就被批评。录的歌更拿不出手哇,这个有2年了。
android技术也需要提升 ...
2 语流音变训练
轻声
普通话的每个音节都有它的声调,可是在句子里有些音节常常失去了原有的声调而念成较轻、较短的调子,这叫做轻声。
轻声音节发音时会变得轻(音强)而短(音长)。一般来说,轻声音节的音强是变弱的,音长是变短的,音高调值依靠前一个音节的声调来决定。
阴平后的轻声念半低调(2度)
阳平后 中调(3度)
上声 半高调(4度)
去声 低调 (1度)
轻声的音调是相对音高
读这些轻声时,要对比前后两个音节的音高。
轻声词两个音节的音长是相对固定的,轻声音节读时音长变短,那么,第一个音节读时相对来说就要长一些。
1 声调发音训练
声调的作用
声调是发音准确的关键因素
声调的性质
声带绷紧-发出的声音变高
声调的音高的相对的
普通话声调的学习阴平 阳平 上声 去声(分别代表1~4声)
声调又分为 调值、调类
调值是声调的实际读音,也就是音节的高低、升降、曲直、长短的具体变化形式。
调值有4种调值 55 35 214 51 又称 五度标记法
调类: 阴平 阳平 上声 去声(分别代表1~4声)
调类和调值是“名”与“实”的关系。调类是声调的名称,调值是声道的实际读音。
阴平发音要领
阴平调值是55,发音时声带始终是拉紧,声音又高又平,阴平有为其他三个声调定高低的作用,如果阴平调值掌握不好,会影响其他声调的发音。
阳平发音要领
阳平调值是35,发音时声由有不松不紧,逐渐拉紧,声音由不高不低升到最高。
上声发音要领
上声调值是214,发音时声带由较松慢慢到最松,再很快的拉紧。声音由较低慢慢到最低,再快速升高 。
去声发音要领
去声调值是51,发音时声带先拉紧,后放松,声音从最高降到最低。发音要干脆,不能拖沓。声带拉紧,频率高,音调就高。声带放松,频率低,音调就低。
声调和气息控制结合训练
阴平: ...
第8章 随遇而安-状态模式
特点
对象状态改变了,该类的状态参数会更新,状态更新了,新状态的操作场景就会变化,这里的状态更新是一个自定义的类,并不是我之前经常写的一个字符串或者是final定义的int类型。每个自定义状态类中有自己对于某个场景的操作步骤。
本来以为状态模型没有什么,就是简单的string参数记录,但是这章大大改变了我对状态模式的理解。之前我写代码的时候全都是用一个string或int类型的参数保存一个对象的状态(用到最多的是设备状态的记录),导致最后复杂场景下代码中全是ifelse。。。。。。
用了状态模式,可以对代码进行解耦,将每种状态下的操作步骤区分开来,做到需求修改的时候不会影响到老代码。
用法书中给出的wifimanager源码真心看不懂哇,之后等到知识都储备的差不多了再看看能不能研究会吧。。。。下面是状态模式的调用
点击退出登录 LoginContext.getLoginContext()就会变为退出登录状态,如果再点击分享,评论就会走LogoutState类下的评论和分享。进入登陆状态后就走LoginState类下的分享和评论,这里LoginState类就忽略不写啦。1234567 ...
第7章 时势造英雄-策略模式
策略模式白话
少用ifelse 会造成代码量增加,也不好看,尽量分成多个类
123456789101112131415// 公交出行价格计算器public class TranficCalculator (public static void main(String[] args){ TranficCalculator calculator = new TranficCalculator();//设置计算策略 calculator.setStrategy(new BusStrategy());// 计算价格 System.out.println("公交车乘16公里的价格∶"+ calculator.calculatePrice(16));}; CalculateStrategy mStrategy;public void setStrategy(CalculateStrategy mStrategy){ this.mStrategy = mStrategy;}public int calculatePr ...