没有合适的资源?快使用搜索试试~ 我知道了~
12-阿里规范1
资源推荐
资源详情
资源评论
一 14 一 一 14 一 一 12 一 一 11 一 一 10.5 一 一 10.5 一 一 10 一
目 录
1. 资源命名与使用 .............................3
1.1. layout 资源 ..........................3
1.2. drawable 资源 ........................3
1.3. anim 资源 .............................3
1.4. color 资源 .............................3
1.5. dimen 资源 ...........................3
1.6. style 资源 ...........................3
1.7. string 资源 ..........................3
1.8. Id 资源 ..............................3
1.9. 大分辨率图片..........................4
2. 基本组件 ...................................4
2.1. 注意 .................................4
2.2. onSaveInstanceState()方法调用原则 ....4
2.3. 不要在 onDestroy 内执行释放资源的工作 ...4
2.4. 不要在 onPause 方法中做耗时较长的工作...4
2.5. 不要在 Application 对象中缓存数据。....4
2.6. Activity 间通过隐式 Intent 的跳转注意 .5
2.7. Activity 间的大数据通信 ...............6
2.8. 使用 Toast 时,建议定义一个全局的 Toast 对象
.........................................6
2.9. 使用 Adapter 的时候,总是显式设置属性 ..7
2.10. Service ............................7
2.10.1. 避 免 在
Service#onStartCommand()/onBind() 方 法 中
执行耗时操作 ...........................7
2.10.2. 总是使用显式 Intent 启动或者绑定
Service ...............................8
2.10.3. Service 需要以多线程来并发处理多个
启动请求,使用 IntentService, ..........8
2.11. BroadcastReceiver ..................8
2.11.1. 避免在 onReceive()中执行耗时操作 8
2.11.2. 避免使用隐式 Intent 广播敏感信息,可
用本地广播.............................9
2.11.3. registerReceiver() 和
unregisterReceiver()要成对出现。 ......10
2.12. Fragment ..........................11
2.12.1. 如非必须,避免使用嵌套的 Fragment。
.....................................11
2.12.2. 不 要 随 意 使 用
commitAllowingStateLoss() ............12
3. UI 与布局 .................................12
3.1. 建议 ................................12
3.2. 布局中使用 ViewGroup 多重嵌套注意.....13
3.3. 尽 量 使 用 DialogFragment , 代 替
Dialog/AlertDialog ......................13
3.4. 禁止在设计布局时多次设置子 view 和父 view
中为同样的背景............................13
3.5. 在需要时刻刷新某一区域的组件时的建议 ...14
3.6. 尽量不要使用 AnimationDrawable.......14
3.7. 不 能 使 用 ScrollView 包 裹
ListView/GridView/ExpandableListView ....14
4. 进程、线程与消息通信 .......................15
4.1. 推荐 ................................15
4.2. 不要通过 Intent 在 Android 基础组件之间传递
大数据 ...................................15
4.3. 新建线程必须通过线程池 ...............16
4.4. 线程池不允许使用 Executors 去创建.....16
4.5. 新建能识别自己业务的线程..............16
4.6. 谨慎使用 Android 的多进程 ............17
5. 文件与数据库 ..............................17
5.1. 任何时候不要硬编码文件路径,请使用 Android
文件系统 API 访问。 .......................17
5.2. 当使用外部存储时,必须检查外部存储的可用性。
........................................17
5.3. 不要通过放宽文件系统权限的方式去实现应用间
共享文件 .................................18
5.4. SharedPreference 注意 ...............19
5.4.1. 存简单类型数据 .................19
5.4.2. 尽 量 使 用 Editor#apply() .....19
5.5. 数据库 Cursor 必须确保使用完后关闭,以免内
存泄漏。 .................................19
5.6. 多线程操作和大数据写入数据库时,需要使用事
务,以免出现同步问题。 ....................20
5.7. 执 行 SQL 语 句 时 , 应 使 用
SQLiteDatabase#insert()、update()、delete()20
5.8. ContentProvider 注意 ................21
6. Bitmap、Drawable 与动画 ...................21
6.1. 加载大图片或者一次性加载多张图片,应该在异
步线程中进行 .............................21
6.2. 列表中使用图片做缓存 .................21
6.3. png 图片使用 tinypng 或者类似工具压缩处理,
减少包体积。 .............................22
6.4. 应根据实际展示需要,压缩图片 ..........22
6.5. 使用完毕的图片,应该及时回收,释放宝贵的内
存。 .....................................23
6.6. 针对不同的屏幕密度,提供对应的图片资源 .23
6.7. 使用 inBitmap 重复利用内存空间,避免重复开
辟新内存。 ...............................23
6.8. 使用 ARGB_565 代替 ARGB_888 .........24
6.8.1. 资料 ..........................24
6.9. 尽量减少 Bitmap (BitmapDrawable)的使用
........................................24
6.10. 谨慎使用 gif 图片 ...................24
6.11. 大图片资源不要直接打包到 apk .........24
6.12. 动画 Animation 注意 .................25
6.12.1. 根据设备性能,选择性开启复杂动画 25
6.12.2. 在 Activity.onPause() 或
Activity.onStop() 回 调 中 , 关 闭 当 前
activity 正在执行的的动画。 ...........25
6.12.3. 在动画或者其他异步任务结束时,应该考
虑回调时刻是否还支持业务处理 ...........25
6.12.4. 当 View Animation 执行结束时,调用
View.clearAnimation()释放相关资源。 ...26
6.12.5. onAnimationEnd 回调可能没被调用26
7. 安全 .....................................26
7.1. 注意 ................................27
7.2. 使用 PendingIntent 时,禁止使用空 intent,
同时禁止使用隐式 Intent ...................27
7.3. 禁 止 使 用 常 量 初 始 化 矢 量 参 数 构 建
IvParameterSpec .........................27
7.4. 将 android:allowbackup 属性设置为 false,
防止 adb backup 导出数据。 ................28
7.5. HostnameVerifier 子类中,使用 verify 函数
效验服务器主机名的合法性...................28
7.6. X509TrustManager 子 类 中 , 使 用
checkServerTrusted 函数效验服务器端证书的合法
性。 .....................................29
7.7. 对 于 内 部 使 用 的 组 件 , 显 示 设 置 组 件 的
"android:exported"属性为 false。 .........29
7.8. 使用 Intent Scheme URL 需要做过滤。 ..29
7.9. 密钥加密存储或者经过变形处理后用于加解密运
算,切勿硬编码到代码中。...................29
7.10. 将所需要动态加载的文件放置在 apk 内部,或
应用私有目录中............................29
7.11. 除 非 min API level >=17 , 请 注 意
addJavascriptInterface 的使用。 ..........30
7.12. 使用 AES/DES/DESede 加密算法时,不要使用
默认的加密模式 ECB ........................30
7.13. 对 于不 需 要 使用 File 协 议 的 应用 , 禁 用
File 协议 ................................30
7.14. 在 HTTPS 通信中,验证策略需要改成严格模式。
........................................30
7.15. Android5.0 以后安全性要求较高的应用应该
禁止录屏。 ...............................30
7.16. zip 中不建议允许../../file 这样的路径30
7.17. WebView 组件加载网页发生证书认证错误时,
采用默认的处理方法 handler.cancel(),停止加载问
题页面 ...................................31
1. 资源命名与使用
1.1. layout 资源
Activity 的 layout 以 module_activity 开头
Fragment 的 layout 以 module_fragment 开头
Dialog 的 layout 以 module_dialog 开头
include 的 layout 以 module_include 开头
ListView 的行 layout 以 module_list_item 开头
RecyclerView 的 item layout 以 module_recycle_item 开头
GridView 的行 layout 以 module_grid_item 开头
1.2. drawable 资源
以 小 写单 词 + 下 划 线 的 方 式 命 名 , 根 据 分 辨 率 不 同 存 放 在 不同 的 drawable 目 录 下 , 建议 只 使 用 一 套, 例 如
drawable-xhdpi。采用规则如下:模块名_业务功能描述_控件描述_控件状态限定词。如:module_login_btn_pressed,
module_tabs_icon_home_normal
1.3. anim 资源
以小写单词+下划线的方式命名,采用以下规则:模块名_逻辑名称_[方向|序号]
tween 动 画 资 源 : 尽 可 能 以 通 用 的 动 画 名 称 命 名 。 如 module_fade_in,module_fade_out,
module_push_down_in (动画+方向);
frame 动画资源:尽可能以模块+功能命名+序号。如:module_loading_grey_001
1.4. color 资源
以小写单词+下划线方式命名,使用#AARRGGBB 格式,写入 module_colors.xml 文件中,命名格式采用以下规则:模块
名_逻辑名称_颜色。如:values 文件夹 mine_colors.xml 文件中<color name="mine_btn_bg_color">#33b5e5e5</color>
1.5. dimen 资源
以小写单词+下划线方式命名,写入 module_dimens.xml 文件中,采用以下规则:模块名_描述信息。如:values 文件
夹 mine_dimens.xml 文件中<dimen name="mine_horizontal_line_height">1dp</dimen>
1.6. style 资源
采用小写单词+下划线方式命名,写入 module_styles.xml 文件中,采用以下规则:父 style 名称.当前 style 名称。
如:values 文件夹 common_styles.xml 文件中
<style name="ParentTheme.ThisActivityTheme">
…
</style>
1.7. string 资源
以小写单词+下划线的方式命名,文件或者文本用到字符需要全部写入 module_strings.xml 文件中,采用以下规则:
模块名_逻辑名称。如:values 文件夹 mine_strings.xml 文件中 mine_top_tips,mine_aboutme_desc
1.8. Id 资源
原则上以驼峰法命名,View 组件的资源 id 需要以 View 的缩写作为前缀。常用缩写表如下:
其它控件的缩写推荐使用小写字母并用下划线进行分割,例如:
ProgressBar 对应的缩写为 progress_bar
DatePicker 对应的缩写为 date_picker
1.9. 大分辨率图片
单维度超过 1000 的大分辨率图片建议统一放在 xxhdpi 目录下管理,否则将导致占用内存成倍数增加。说明:为了支
持多种屏幕尺寸和密度,Android 为多种屏幕提供不同的资源目录进行适配。为不同屏幕密度提供不同的位图可绘制对象,
可用于密度特定资源的配置限定符(在下面详述) 包括 ldpi(低)、mdpi(中)、 hdpi(高)、xhdpi(超高)、xxhdpi (超
超高)和 xxxhdpi(超超超高)。例如,高密度屏幕的位图应使用 drawable-hdpi/。根据当前的设备屏幕尺寸和密度,将
会寻找最匹配的资源,如果将高分辨率图片放入低密度目录,将会造成低端机加载过大图片资源,又可能造成 OOM,同时也
是资源浪费,没有必要在低端机使用大图。
正例:将 144*144 的应用图标 PNG 文件放在 drawable-xxhdpi 目录
反例:将 144*144 的应用图标 PNG 文件放在 drawable-mhdpi 目录
扩展参考:https://developer.android.com/guide/practices/screens_support.html?hl=zh-cn
2. 基本组件
Android 基本组件指 Activity、Fragment、Service、BroadcastReceiver、ContentProvider 等等。
剩余46页未读,继续阅读
资源评论
我要WhatYouNeed
- 粉丝: 45
- 资源: 287
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功