Android命名规范,开发规范,注意点整理(一)

Android命名规范,开发规范,注意点整理(一)

上一篇:Android四种启动模式详解
https://blog.csdn.net/weixin_40234977/article/details/79823635


命名规范

前言

两种命名方式

1.小驼峰命名法:
除了首个单词首字母小写除外,其余所有单词所有首字母都要大写。一般用于包名,函数名,变量名,res文件内容。

2.帕斯卡命名法:
又称大驼峰命名法。所有单词首字母大写。一般用于类名,接口名。

Android命名规范,开发规范,注意点整理(一)_第1张图片

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
        );

结果显示:
Android命名规范,开发规范,注意点整理(一)_第2张图片

其他

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命名规范,开发规范,注意点整理(一)_第3张图片

Android命名规范,开发规范,注意点整理(一)_第4张图片

你可能感兴趣的:(安卓,Android)