Android命名规范,开发规范,注意点整理(一)
Android命名规范,开发规范,注意点整理(一)
上一篇:Android四种启动模式详解
https://blog.csdn.net/weixin_40234977/article/details/79823635
命名规范
前言
两种命名方式
1.小驼峰命名法:
除了首个单词首字母小写除外,其余所有单词所有首字母都要大写。一般用于包名,函数名,变量名,res文件内容。
2.帕斯卡命名法:
又称大驼峰命名法。所有单词首字母大写。一般用于类名,接口名。
layout资源文件
name | 命名规范示例 |
---|---|
Activity | xx_activity |
Fragment | xx_fragment |
Dialog | xx_dialog |
include | xx_include |
ListView | xx_list |
RecyclerView | xx_recycle |
GridView | xx_grid |
view
name | 简写 |
---|---|
ScollView | sv |
ConstraintLayout | cl |
ListView | lv |
TextView | tv |
Button | btn |
ImageView | iv |
CheckBox | cb |
LinearLayout | ll |
RelativeLayout | rl |
RadioButton | rb |
EditText | et |
drawable系列文件夹
文件夹 | dpi | 尺寸 |
---|---|---|
ldpi | 120dpi | 36*36 |
mdpi | 160dpi | 48*48 |
hdpi | 240dpi | 72*72 |
xhdpi | 320dpi | 96*96 |
xxhdpi | 480dpi | 144*144 |
xxxhdpi | 640dpi | 192*192 |
mipmap系列文件夹
密度 | 尺寸 |
---|---|
mipmap-mdpi | 48*48 |
mipmap-hdpi | 72*72 |
mipmap-xhdpi | 96*96 |
mipmap-xxhdpi | 144*144 |
mipmap-xxxhdpi | 192*192 |
屏幕测量类DisplayMetrics
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
TextView tv = findViewById(R.id.tv); DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); tv.setText( "密度 " + displayMetrics.density + "\n" + "密度dpi " + displayMetrics.densityDpi + "\n" + "高度像素 " + displayMetrics.heightPixels + "\n" + "宽度像素 " + displayMetrics.widthPixels + "\n" + "缩放密度 " + displayMetrics.scaledDensity + "\n" + "X轴方向dpi " + displayMetrics.xdpi + "\n" + "Y轴方向dpi " + displayMetrics.ydpi );
结果显示:
其他
name | 命名规范示例 |
---|---|
drawable | xx_login_btn_pressed |
anim | xx_put_out,xx_put_in |
color | xx_tv_bg_color |
dimen | xx_horizontal_line_height |
style | 父 style 名称.当前 style 名称”方式命名 |
注意点
基本组件篇:
1.Activity 间的数据通信,对于数据量比较大的,避免使用 Intent + Parcelable
的方式,可以考虑 EventBus 等替代方案,以免造成TransactionTooLargeException。
2.持久化放置在Activity#onPause()/onStop()中实行。
3.避免使用隐式 Intent 广播敏感信息,信息可能被其他注册了对应BroadcastReceiver 的 App 接收。
Intent intent = new Intent("my-sensitive-event");intent.putExtra("event", "this is a test event");LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
4.总是使用显式 Intent 启动或者绑定 Service,且不要为服务声明 Intent Filter,保证应用的安全性。如果确实需要使用隐式调用,则可为 Service 提供 Intent Filter并从 Intent 中排除相应的组件名称,但必须搭配使用 Intent#setPackage()方法设置Intent 的指定包名,这样可以充分消除目标服务的不确定性。
UI篇:
1.布局中不得不使用 ViewGroup 多重嵌套时,不要使用 LinearLayout 嵌套,改用 RelativeLayout,可以有效降低嵌套数.
2.文本大小使用单位 dp,View 大小使用单位 dp。对于 TextView,如果在文字大小确定的情况下推荐使用 wrap_content 布局避免出现文字显示不全的适配问题。
3.不能使用 ScrollView 包裹 ListView/GridView/ExpandableListVIew;因为这样会把 ListView 的所有 Item 都加载到内存中,要消耗巨大的内存和 cpu 去绘制图面,而是使用 NestedScrollView。
4.不要通过 Intent 在 Android 基础组件之间传递大数据(binder transaction缓存为 1MB),可能导致 OOM。
5.使用 Toast 时,建议定义一个全局的 Toast 对象,这样可以避免连续显示Toast 时不能取消上一次 Toast 消息的情况。即使需要连续弹出 Toast,也应避免直接调用 Toast#makeText。
安全篇:
1.执行 SQL 语句时,应使用 SQLiteDatabase#insert()、update()、delete(),不要使用 SQLiteDatabase#execSQL(),以免 SQL 注入风险。
结语
此文档会不断完善,相关资料参考阿里安卓开发规范,侵删。
下一篇:
下面是两个巨大的永远收不到钱的二维码:
更多相关文章
- Android中ScrollView嵌套ListView只显示一行的解决方案
- android java复制和压缩文件或文件夹
- Android创建文件夹及文件并写入数据
- Android中ScrollView中嵌套RecyclerView的完美解决办法
- 读取android根目录下的文件或文件夹
- Android NestedScrolling机制完全解析 带你玩转嵌套滑动
- Android listview中嵌套Checkbox的布局文件
- Android native/C/C++ 监控文件夹变化