Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • 项目小结

    post by onelong / 2016-3-31 20:57 Thursday [工作]

     这几天终于闲下来了,想对项目开发做一些简单的总结。案场是一款面向房地产企业的app应用,简单的来说类似于移动办公的app。就项目技术而言,还是比较简单的,业务相对复杂一点,操作起来也相对复杂一点,当然用户体验很多时候是产品设计的时候定下来的,这里就不说了。
    android版本,除了当时我选择了一些基础代码库之后,我基本没怎么参与。没有参与有很多种原因:
    1、自己有过4-5年的android经验,历史经验告诉我,不难只是工作量大。
    2、iOS开发存在很多未知问题,我需要花多时间去探讨。
    3、第一周我看android开发的小伙子写的代码,代码质量不错,效率也比较高,责任心比较强,很放心。
    在android版本开发的过程里面,我只是偶尔会review一下代码,看到有问题的回去修改或者提醒修改。到项目的后期,我回头看android代码的时候,感觉会比我自己写得要好,起码比较规范,无论是activity还是fragment都是固定的模版,对接受项目者还是比较友好的。当然开发过程还是存在一点点问题的,就是没有提前做好规划,导致后面加Loader,下拉刷新很乱。如果当初规划好一点,后面的工作会更加顺利和舒心。
    android开发的前期工作,我还是做了很多东西的,封装网络的基础库,例如基于OKhttp的Volley,session会话的保存,还有基于gosn网络库的封装。这次尝试了新的东西,把所有接口都写在一个文件上面,方便管理。但是后来发现,这样搞法哪个文件的代码量会很多,阅读起来会比较累人。后来看了看clean架构,感觉会比较清晰,下次有项目再用。本来计划在这个项目要用rxandroid的,由于开发人员对它不熟悉,最后也没用上,还是老模式的MVC,但是下次还是希望放弃EventBus改用Rxbus。
    对于iOS版,基础库还是我搭建的,只是大部分有不是我做的,在以往的开发中,都是纯代码开发,但是在这个项目中,我选择了storyboard+Autolayout,在开发的过程的确踩了很多坑,但是我不后悔这样的选择,有时候有些经历是无价的,我知道很多大公司都选择了很成熟的方案,例如微信QQ,基本都是纯代码写的。 storyboard是苹果推荐的,苹果最终的目的是让UI设计去布局,程序员只关心业务逻辑,但是国内适合没那么受欢迎。storyboard非常方便人熟悉项目框架流程,但是编译慢,多人协作麻烦。说到多人协作,整一个xcode都不是特别人性化,多人提交的时候很容易产生冲突,特在是SVN上。
    踩过很多坑,让我了解了很多东西,经过这个项目起码对Autolayout,RAC是比较了解了。我不想去简单的评价对和错,方案通常是需求决定的,storyboard对个人开发是友好的,但是对团队开发需要拆分多个,而且尽可能简单。对于纯代码,看起来很凌乱,对于新人需要配备ViewController 跳转图才容易熟悉代码。当你熟悉storyboard的时候,你会发现开发mac os x的程序也同样适用,而且快速入门。
    去年11月开始,我一直关注着iOS开发,也是从自身发展来看的,我需要多几个项目来完善自己知识体系。经过这个项目,学习到了很多东西,一部分是在别人博客的是看到的,一部分是自己尝试出来的,还有一部分是和别人交流出来的,不管从哪里来的,对自己都是一种很好的经历。项目后期我想了很多关于框架的问题,关于很多安全的问题,关于很多底层的问题,对runtime,runloop,多线程有了更多体会。
    对于技术,我个人还是喜欢找些新东西去折腾,哪怕过程有点坎坷,但是只有心临其境才能真切的感知那些不曾想过的问题,解决哪些不曾想过的问题。任何一个方案都是有适用范围的,不可能是万金油。有些人可能在大公司呆过,看过很多有经验的文章,可以很轻松的做出选择,但是对于没有这样经历的人,只能靠自己尝试了。 

  • android studio jni

    post by onelong / 2015-9-8 21:47 Tuesday [android]

    在android studio 导入jni项目,报如下错误。

    Error:(12, 0) Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.

    阅读全文>>

  • Android 外勤管家

    post by onelong / 2015-8-14 21:42 Friday [android]

    android版截图:

    点击查看原图

    阅读全文>>

  • android 热点

    post by onelong / 2015-8-2 0:48 Sunday [android]

    最近要做一个热点App,类似快牙。也是这样看系统的Settings代码,做点笔记吧。创建配置对象:

    public WifiConfiguration getConfig(int type,String ssid,String password) {

    阅读全文>>

  • 政府企业服务软件-员工服务平台客户端

    post by onelong / 2014-5-26 2:31 Monday [android]

  • Google play 应用内支付的一些文章

    post by onelong / 2014-1-25 5:00 Saturday [android]

    最近在做Google play的东西,真的很蛋疼。我把看过的文章收集起来了

    http://zengrong.net/post/1801.htm

    http://blog.csdn.net/midashao/article/details/10122333

    阅读全文>>

  • byte2Hex和byte2Base64

    post by onelong / 2013-11-26 16:25 Tuesday [android]

    byte2Hex会变大1倍,使用byte2Base64相对小一些,文件大小200kb的,base64后300kb左右,如果使用byte2Hex就是400多kb。

    总的来说,使用byte上传会比较好些,数据量少一些。

    阅读全文>>

  • 全景二维码

    post by onelong / 2013-10-29 16:50 Tuesday [android]

    ICT移动支撑完成的第一个客户端软件,主要参与新需求和界面美化

    点击查看原图

    阅读全文>>

  • 回珠海工作

    post by onelong / 2013-10-12 15:59 Saturday [android]

    离开了深圳一个月了,作为劳务来到珠海移动继续android软件开发。9月2号报到,9月3号就开始修改BUG了。这段事情维护的是全景二维码。下载地址:

    阅读全文>>

  • pipe和binder

    post by onelong / 2013-8-31 13:01 Saturday [android]

    pipe是一种特殊的文件系统,Linux内核中采用struct pipe_inode_info结构体来描述一个管道。

    binder采用了跨进程映射内存的方式实现的。所以可以说是零拷贝的,效率比较高。尽管是这样,android上一个AIDL的调用也要0.12ms左右。

    阅读全文>>

  • android task[转载]

    post by onelong / 2013-8-31 4:08 Saturday [android]

    android:allowTaskReparenting

        用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。

    阅读全文>>

  • android Looper 核心原理

    post by onelong / 2013-8-30 20:01 Friday [android]

    回珠海面试的前一个晚上,认真的看看了android Looper 在linux上面的实现,突然知道原来是使用pipe来实现的。有时候在想为什么不使用binder呢?

    阅读全文>>