美文网首页
2017技术篇

2017技术篇

作者: WilsonMing | 来源:发表于2018-02-20 22:37 被阅读73次
    • 技术篇

    今天第一篇---技术篇,

    今年主要参与了Android系统定制,内部APP,云掌柜APP三个项目,那就总结下写三个项目学到哪些

    git命令

    • Android系统开发需要下载Android源码(附录提供在线源码地址)用到各种命令编译,其中包括git命令,原来git都是通过soucetree(git可视化工具)搞定,可是Android系统开发的时候git的url有相关验证和限制。然后就总结了常用到git命令

    自定义控件

    Android系统定制需要定制化的东西比较多,使用Android自定义控件也就会偏多了。以前都是能用系统控件优先考虑用系统控件(主要系统控件在不同的系统兼容性好点),实在不行再使用自定义的控件。然后就重新梳理了如何重写自定义控件.

    RxJava

    用起来很爽,主要是方便线程切换,也避免一些代码经常使用Handler内存泄漏问题。也解决网络请求没有在Activity,Fragment生命周期没有结束后回收问题。

    使用RxJava+OkHttp+Retrofit+ButterKnife+MVP爽爆了

    单元测试

    模仿Google MVP单元测试+mock方式最新代码单元测试。(写了单元测试就可以很明显的看出自己代码结构是否设计合理。可是如果代码之前已经成形你现在是维护,并不建议过多的单元测试而测试或者也可以是用Robolectric写单元,不过这样维护成本比较大)

    自动化Android发版

    主要采用Jenkins+shell脚本调接口方式实现自动化脚本。原来都会用Jenkins打包apk,然后我们最主要的是要解决打包好的apk如何上传问题,上传apk 就需要shell脚本网络请求。原来shell没有了解,不过琢磨了很久终于成功了。(不过后面公司有“皮皮虾”我这个只在测试环境的自动化就忽略了。)

    蓝牙打印

    主要方式APP接受的到相应服务端信息,根据相关信息发送指令给蓝牙打印机,然后蓝牙打印完成。整个过程这样实际开发中就要考虑各种问题,通过两个星期的梳理才理解透相关逻辑,实际开发蓝牙也总结了一些需要考虑的问题

    • 推送和App socket通信
    • 推送和socket保活
    • 推送和App socket的,去重,线程安全问题
    • app打印信息在不同的打印机上的展示问题
    • app与蓝牙打印连接问题,连接蓝牙成功,打印没有反应,蓝牙打印回斥问题。

    阿里路由框架,项目模块化

    当项目大了,人多开发的时候。总会遇到代码冲突。除了合代码前review代码外还需要解决开发效率。首先是模块化开发,互不依赖。然后就有了路由,考虑大公司维护好最后采用了ARouter。(如果项目不大和人员不是很多暂时不建议使用路由)

    Kotlin

    Kotlin为Android 官方支持语言,自己写了一些代码,主要体现简化代码,非空认证优势。其他还没有发现太多。实际项目开发没有用到。

    AI: Python

    今年的AI很火,然后自己就找视频自学Python,自学两个星期,中间公司比较忙后面懒了没有完成。2018一定要补上。

    微信小程序

    自己一直想开发一个共享卡包类的工具。开始想做成app,觉得还是太大了,最后还是使用微信小程序的方式,使用微信小程序主要的好处:一是利用微信的群体,另外人人都有微信的时代使用小程序比较轻便。用微信小程序就需要node.js+后台开发。基本要从零开始,然后一直模式,目前只做成一个demo形式。2018年一定要做完这个。

    自动化模拟点击

    想有这个自动化主要想解放测试,不用老是重复测试一些问题。自己当初设想方法是:app打开,然后app自己获取当前页面所有的view,能点击的view就点击,并记录这个点击相关信息直到app崩溃记录整个点击过程。可是实际实现却不是这样。都是需要自己写代码去设置相关点击和输入事件,麻烦的不得了。后面就分析了一些自动化点击测试的框架最后综合各方面的框架最终选择了Appium,可是实际使用却各种问题。如:输入法切换输入法方式只为数字,或者设置输入法方式都没有。还在寻找解决方法中。。。

    其他

    2017也写了可怜几篇技术文章

    附录

    相关文章

      网友评论

          本文标题:2017技术篇

          本文链接:https://www.haomeiwen.com/subject/mlcctftx.html