- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android 开发最佳实践.pdf
Android 开发最佳实践
摘要
从Futurice公司Android开发者中学到的经验。 遵循以下 则 ,避免重复发明轮子。若您对开发iOS或Windows
Phone 有兴趣 , 请看iiOOSS GGoooodd PPrraaccttiicceess 和 WWiinnddoowwss cclliieenntt GGoooodd PPrraaccttiicceess 这两篇文章。
摘要
使用 Gradle 和它推荐的工程结构
把密码和敏感数据放在perties
不要 自己写 HTTP 客户端,使用Volley或OkHttp库
使用Jackson库解析JSON数据
避免使用Guava同时使用一些类库来避免65k method limit (一个Android程序中最多能执行65536个方法 )
使用 Fragments来呈现UI视图
使用 Activities 只是为了管理 Fragments
Layout 布局是 XMLs代码 ,组织好它们
在layoutout XMLs布局时 ,使用styles文件来避免使用重复的属性
使用多个style文件来避免单一的一个大style文件
保持你的colors.xml 简短DRY(不要重复 自己) ,只是定义调色板
总是使用dimens.xml DRY(不要重复 自己) ,定义通用常数
不要做一个深层次的ViewGroup
在使用WebViews时避免在客户端做处理 ,当心内存泄露
使用Robolectric单元测试 ,Robotium 做UI测试
使用Genymotion 作为你的模拟器
总是使用ProGuard 和 DexGuard混淆来项 目
Android SDK
将你的Android SDK放在你的home 目录或其他应用程序无关的位置。 当安装有些包含SDK的IDE的时候 ,可能会将
SDK放在IDE同一 目录下 ,当你需要升级 (或重新安装 )IDE或更换的IDE时 ,会非常麻烦。 此外 ,若果你的IDE是在
普通用户 ,不是在root下运行 ,还要避免吧SDK放到一下需要sudo权限的系统级别 目录下。
构建系统
你的默认编译环境应该是Gradle. Ant 有很多限制 ,也很冗余。使用Gradle ,完成以下工作很方便 :
构建APP不同版本的变种
制作简单类似脚本的任务
管理和下载依赖
自定义秘钥
更多
同时 ,Android Gradle插件作为新标 的构建系统正在被Google积极的开发。
© 本文档使用 看云 构建 - 1 -
Android 开发最佳实践
工程结构
有两种流行的结构 :老的Ant Eclipse ADT 工程结构 ,和新的Gradle Android Studio 工程结构 , 你应该选择
新的工程结构 ,如果你的工程还在使用老的结构 ,考虑放弃吧 ,将工程移植到新的结构。
老的结构:
old-structure
├─ assets
├─ libs
├─ res
├─ src
│ └─ com/futurice/ proj ect
├─ AndroidManifest.xml
├─ build.gradle
├─ proj perties
└─
新的结构
new-structure
├─ library-foobar
├─ app
│ ├─ libs
│ ├─ src
│ │ ├─ androidTest
│ │ │ └─ j ava
│ │ │ └─ com/futurice/ proj ect
│ │ └─ main
│ │ ├─ j ava
│ │ │ └─ com/futurice/ proj ect
│ │ ├─ res
│ │ └─ AndroidManifest.xml
│ ├─ build.gradle
│ └─
├─ build.gradle
└─ settings.gradle
主要的区别在于 ,新的结构明确的分
文档评论(0)