Android培训

亿元级外企Android培训企业

  • 全国服务监督电话4001118989
Android培训 > Android教程 > Android开发中,哪些可以“要”,哪些不可以“要”?
  • Android开发中,哪些可以“要”,哪些不可以“要”?

    发布:Android培训  来源:Android教程  时间: 2017年05月10日

  • Android开发中的“要”与“不要”我们在开发Android应用的过程中,不能只满足于实现功能,应该遵循一些准则,使得我们的代码优雅并且便于维护和扩展,我们应该做到如下几“要”和几“不要”。...

  • Android开发中的“要”与“不要”我们在开发Android应用的过程中,不能只满足于实现功能,应该遵循一些准则,使得我们的代码优雅并且便于维护和扩展,我们应该做到如下几“要”和几“不要”。

    • 要使用Gradle以及Gradle推荐的工程结构

    • 把密码以及敏感信息放在gradle.properties中

    • 受限于65k method limit,尽量使用轻量的库

    • 使用第三方库解析JSON数据

    • 使用styles来避免layout xml中重复的属性

    • 使用Genymotion模拟器(此模拟器真的很快)

    • 必须使用Proguard混淆代码

    不要
    • 不要自己写Http Client, 使用Volley或者OkHttp库

    • 不要把一个styles.xml写得很大,尽量拆分

    • colors.xml不要写得复杂,只定义一个调色板就ok

    • dimens.xml也不要写得复杂,只定义通用的尺寸

    • 不要把View的层级写得很深

    项目结构

    Google推荐使用Gradle & Android Studio开发Android项目

    Gradle配置

    在我们app的builde.gradle文件中,我们需要针对release build定义signingConfigs , 也许我们会这么写:


    这种写法我们是不推荐的,因为密码是敏感信息,我们应该将其放置gradle.properties中。

    当心dex方法超出65536限制,避免使用过多,过大的第三方库

    Android应用,当打包成dex文件的时候,方法数不能超过65536个。如果超过这个限制,打包的时候就会报错,尽量少使用第三方库。当我们要引入一个第三方库,同时有多种库选择的时候,我们要尽量选择放法数少的那个库,尽量保持轻量,我们可以使用dex-method-count来检测方法数.

    Json解析

    如果我们项目中需要用到Json数据解析,我们不要重复造轮子,尽量使用第三方库。优秀的Json解析库有Jackson、Gson、Json-smart、Boon JSON,个人推荐Gson, 因为Gson库更轻量,更好地避免放法数过大

    避免layout重复属性

    几乎每个工程都需要用到styles, 因为它对于一些重复定义的属性来讲,非常地方便。对于应用中的大多数文字内容来说,至少我们应该有一个通用属性

    不单单对于TextView, 对于其它控件:Button, ImageView等都需要定义通用的属性,在开发过程中,我们还应该持续性地对重复定义的属性进行抽象。

    使用Genymotion模拟器

    工欲善其事必先利器,Android自带的模拟器一直被吐槽,速度太慢,太卡,开发效率降低地不是一星半点。Genymotion成功解决了我们的苦恼。除了速度快之外,Genymotion还能模拟GPS点,模拟网络链接等等。

    使用ProGuard混淆代码

    ProGuard是用来压缩和混淆Android项目代码的工具,从安全和隐私角度考虑,我们是必须要混淆我们的代码的

    通常我们通过配置Gradle文件,当发布Release Apk的时候使用ProGurad压缩:

     Android framework已经包含了默认的混淆配置,在SDK_HOME/tools/proguard/proguard-android.txt文件中。如果我们需要自定义哪些文件需要混淆,哪些文件不需要混淆,我们需要在my-project/app/pruguard-ruls.pro文件中做相应配置


    避免ProGuard去除掉需要的类或者类成员,使用keep选项:
    -keep class com.xx.project.MyClass { *; }
    避免ProGuard混淆某些类或者类成员,使用keepnames选项:
    -keepnames class com.xx.project.MyClass { *; }

    不要自己写Http Client, 使用Volley或者OkHttp库


    Http Client开源解决方案有好几个,okhttp, Retrofit, android-async-http和Volley, 在平时项目的开发中,我们应该选择哪种解决方案呢?

    okhttp与async http.
    okhttp 和 async http是一个基础的通信库,都很强大,但需要自己封装使用才更方便。另外okhttp已经被谷歌官方用在android源码中了。

    Retrofit 与 Volley

    Retrofit和 Volley是属于比较高级点的封装库了
    如果是标准的RESTful API,那么用Retrofit会非常爽!网络交互部分代码量可以减少90%。同时支持Gson,契合度很高。


    另外,Retrofit和okhttp是亲兄弟,建议一起用,okhttp是底层库,能够支持一些非标准的HTTP方法,比如PATCH方法。
    Volley自己的定位是轻量级网络交互,适合大量的,小数据传输,如果你的项目比较大,那么目测还得把volley再次封装才会好用一些。

    拆分style, 不要把单个style文件写得很大


    我们不能只写一个styles.xml, 把单个文件写得很大,难以维护。
    Android SDK支持其他文件,styles文件只要有XML标记<style>就可以。因此我们也许会有这些style文件:styles_home.xml,styles_item_details.xml,styles_forms.xml。style文件必须放在resalues下面

    colors.xml不需要写得复杂


    colors.xml尽量保持简单,不能什么颜色都定义在里面。
    Don't do this:


    我们定义一个调色板就可以了。

    Instead, do this:

    dimens不要写得复杂

    我们也应该定义一个典型的间距和字体大小

    不要把View层级写得很深

    我们在写静态布局的时候,往往为了实现布局,不注意就把view嵌套得很深

    这样写,会带来很多问题,首先是性能问题,体验效果会不好。另外一个问题详见StackOverflowError。

    因此,尽量保持我们的view层级扁平:学习如何使用RelativeLayout, 如何优化我们的layouts以及如何使用<merge>标签.

  • 上一篇:Android开发调试工具推荐,助力Android开发的几款工具

    下一篇:Android APP开发学习线路图,Android APP 开发要掌握这些技能

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56