面试复习题-- Android 编码经验

1、单测尽量补齐,迫使自己去优化代码,至少是有优化函数的设计的动力,考虑函数的结耦,复杂度。

2、layout层级减少。

3、String资源平衡,如为减少资源表大小可直接使用字符串而不是字符串资源,减少资源ID

4、及时关闭资源,如FileOutputStream 、sqlite、子线程的handler,子线程,如没有复用的话回收bitmap。

5、图片的bitmap不要直接加载,一个先计算大小,再安排按比例缩放后加载。

6、使用API的常用函数,如Arrays.sort,Math.max等。

7、自己编写一下自动化测试脚本,如有devops系统配合是最好,没有也可以在自己本机制定测试脚本的任务。

8、Sharepreferences不要存放大的key和value,会引起界面卡、频繁GC、占用内存等等。毫不相关的配置项就不要放在在一起,文件越大读取越慢。读取频繁的key和不易变动的key尽量不要放在一起,影响速度,如果整个文件很小,那么忽略吧,为了这点性能添加维护成本得不偿失。不要乱edit和apply,尽量批量修改一次提交,多次apply会阻塞主线程。推荐DataStore或MMKV替代。

9、线程并且最好每个线程都有意义的名字,方便后面的异常排查。

10、线程池使用ThreadPoolExecutor,自定义控制线程各个参数值。

11、编码的系统分析应该是编码工作的大头,在此阶段应该是占有编码时间的60%,后面的工作就是纯按照自己的设计敲代码。

12、对于所有的编码细碎工作一个工具化,自己工具项目准备或编写称手的工具基本或找到插件。

13、代码CR的分级代码规范<代码的实现<代码函数或类的设计<和具体场景的适配。

14、设计模式常记心间,而使用是融汇贯通的,设计模式可以相互配合,相互嵌套的,不能死守书本规则。

15、工作时对于功能代码的完成优先级:核心的(网络,数据库)库选择全组或部门都有天意别库的宝贝和相关基础功能编写>基础的UI界面(保证和PRD功能项对其,此时也可时时和产品确认)> 需要对接的接口(能保证冒烟测试,即使是写死参数)>功能代码的单测,可以先不写android的API相关单测> 自己编写自动化测试所有功能 >UI精细化打磨> gradle的修改,配合多渠道的或AOP>  数据监控埋点或AOP进行。

16、实例服用,如多个VIew set 一个setOnClickListener,复用链接池,服用缓存,bitmap。

17、时刻注意线程的并发处理,和线程死锁,有死锁工具查看死锁发生。

18、bug的收集,或自己实现收集。

19、包体大小,性能,耗电要留专门时间进行测试,并且要有测试记录,要持续优化。

20、异常记录或日志记录项要提前封装为工具,包括,app版本,时间,机型,线程名,函数名,当前的函数的传入参数。

21、从其他语言或框架借鉴方法,如android也可以使用Spring SPI的设计。

22、控制app的启动包括第三方的SDK的启动,有的依赖ContentProvider要控制自动启动,再由调用方控制。

23、金融数据最好用字符串表数字,汇率或利息计算有统一服务器(或同意的JNI实现)提供,UI层只是展示。

24、项目真的设计架构模型要统一,MVP,MVVM,MVI都可,但是成员间要统一。

25、函数要throw异常,那么在注释或函数的throws要表明,方便如有其他人调用可在编码 时提前预知并处理。

26、如何技术逻辑判断或业务逻辑要有兜底策略。

27、非依赖的三方库内的功能要 做非引入操作exclude。

28、要留足代码系分设计,代码编写,代码审核,功能自测时间。

29、任何任务超过并发时超过6个就要考虑调度器,排优先级和控制任务依赖关系。

30、网络抓包工具,代码编写一开始就要配置好,包括https的解码。

31、秉持所见才所得,不见不忙活的理念,处理数据请求。

32、任何数据容器如Hashmap,StringBUilder都有估计容量,减少扩容操作或空间浪费。

33、常用网络协议(TCP,UDP,HTTP,HTTPS,MQTT,QUIC,Websocket)需要口头练,心里清,随时都会遇到,有时会出现一个功能多个协议组合。

34、信息安全,传输或存储都要有安全机制保障。除非你做的是demo。

35、序列化,内部的Serializable(Java提供 后面简称为S)和Parcelable(Android特有 下面简称为P);或者probuff或直接json。

36、要评估不同场景下的遍历效率。

37、认真学习AOSP里面的Android的系统APP的架构代码。

38、注意收集弃用的控件和API,和新的权限控制越来越严格了。

39、开发阶段始终开启严格模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值