zoukankan      html  css  js  c++  java
  • 使用最新最酷的安卓开发技术

    首先开发工具当然不能用eclipse咯,当然得用android studio。api版本当然必须是23+,以支持cardview、RecyclerView、百分比布局等。

    另外还有引入android support v7、android support design,这样界面的效果就不会太差了,也就是metal design的风格。

    然后除了界面之外,还需要访问数据库,网络请求等。


    对于数据库操作,android有相应的函数可以操作sqlite,不过默认的方式要用sql语句来操作,不是很方便快捷,所以就要用ORM,那么greenDao怎么样呢? greenDao本人之前用过,虽然效率比较高,但实际上使用起来很麻烦,于是又用xutils提供的dbutils使用起来方便了很多,目前并没有感觉到有效率的问题。

    使用orm虽然可以让数据库的读写很方便,但是还有一个问题,就是扩展起来不方便,程序还在开发的时候问题不大,只要修改实体类,然后框架就可以重新创建表,这样很好的,但程序一旦发布,就不能随便改了。因此考虑使用nosql,基于android的nosql也有很多的,前端时间看到SnappyDB感觉还不错,可以考虑引入。


    网络操作有Volley可以用,数据格式用json比较好,有的地方使用webservice 基于xml的SOAP协议之类,本人认为xml的格式并没有什么好处,SOAP之类的协议也算是比较老了,很显然json更简洁更节省流量,而且可以和web端js更好的结合。反正都是基于http协议(json的解析,使用fastjson)。

    不过对于volley本人并没有用到cookie和https,另外好像也不能上传图片,有待研究,或者有什么其他更好的框架。


    对于安卓应用嵌入webview是很常见的,以显示文字、图片类所谓富媒体内容,或者用html5来扩展应用或用html5实现某些界面,所谓hybrid。

    不过要让应用支持hybrid特性还是有很多问题需要考虑的,不是简单嵌入webview就可以的,如js代码和java交互等。但实际上很多问题在一些使用html5来开发移动应用的框架中已经解决了。而这些框架也有开源的。

    因此本人考虑以第三库的形式导入这些框架,为app提供webview的支持,同时具有hybrid特性,另外这些框架有很多扩展库可以用,因此这看起来是个非常好的主意。

    如果注意看一下微信,微信使用了html5来扩展功能,在公众号可以加入链接来打开手机网站,另外还提供js-api来调用app中的一些功能,如相册、拍照等。


    如果app的代码可以放在服务器端,动态更新,当然是非常好的,实现上也有一些工具可以让程序代码动态更新,不过对于这样的工具本人并没有用过,考虑到代码混淆等问题,对这种方式本人表示怀疑,有时间可以试试看。


    ReactNative使用js来编写原生应用,也可以实现代码的动态更新,另外使用类似css的方式来编写界面,这看起来也很不错。android开发中使用xml的方式来定义界面,本人感觉并不好,很啰嗦有很多重复和干扰的东西。也许ReactNative定义界面的方式会更好(有待研究)。


    android使用java来编码,然而java怎么样呢,如果和c/c++比较java当然更好了(对于人来说),但是相比更高级的编程语言就会觉得不太好了,至少我感觉java的语句看起来太长了。正是因为如此,就有基于jvm的动态语言,如groovy,groovy2.4以后是支持安卓的,不过我觉得也没有更换编程语言的必要。

    实际上我觉得应该用groovy去改善安卓编写界面的方式(xml),groovy中所谓DSL,gradle中声明依赖库的方式就比maven中的pom.xml看起来好过了,更为重要的是使用groovy脚本来作为配置文件就可以使用判断循环等,这样就非常灵活了。因此如果可以用groovy脚本来定义安卓界面,一定比xml的方式好玩多了。

    好了,先就写这么多了,有一些还是设想,可能不切实际,有待研究。另外还有图片加载、推送、地图、支付甚至语言识别、语言合成等都有可以用的sdk这里就不多说了。

    如果你觉得本文对你有所帮助请关注我的微信公众号:zhaojieTec,更多内容敬请期待.....

  • 相关阅读:
    Dubbo服务者消费者提供者案例实现
    spring核心组件
    spring为什么要注入接口
    小菜鸡进阶之路_Second week之元组、列表、集合、字典对比.
    小菜鸡进阶之路-First week
    光学公式推到——(物象位置) 1/u+1/v=1/f
    C#问题——调用事件时其他信息: 未将对象引用设置到对象的实例。
    工业相机全局曝光和卷帘曝光的区别
    相机加接圈的作用和缺点
    C#——数组维度/行数/列数/长度区别
  • 原文地址:https://www.cnblogs.com/zhaojietec/p/4926314.html
Copyright © 2011-2022 走看看