IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 三天,我通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范 -> 正文阅读

[移动开发]三天,我通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范

花费了三天时间学习了阿里巴巴 Android 开发规范,顺便通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范。证可能用处不大,但能反向push自己:1.注重代码规范,磨练基本功;2.保持学习的主动性。推荐搞安卓的同学学一学。

认证考试

  • 阿里巴巴 Android 开发规范认证考试地址如下:https://edu.aliyun.com/certification/cldt04,官方注意事项如下:

    1、考试共 (40) 道题,总分100分,及格分数80分 
    2、考试需在(90分钟)内交卷,过程中无法暂停,请提前安排好时间;如未及时交卷,则本次考试作废 
    3、推荐使用 Chrome 浏览器(版本:73及以上的正式版本),或Firefox浏览器(版本:66及以上的正式版本) 
    4、开始答题前会进行身份验证,需要您拍摄并上传身份证人像面照片,并按照系统要求开启摄像头进行面部识别
  • 40道题均为选择题:单选15道题,多选25道题。理论上只要答对32题及以上即可通过考试。

  • 40道题未涉及《阿里巴巴 Java 开发手册》,知识点均在《 Android 开发规范》一书中,但建议同时通读Java开发手册。

  • 考试中的部分知识点概括如下,其他知识点建议自行查书:

    Android 资源文件命名与使用
    1.【推荐】layout/资源文件的命名需带模块前缀。eg:Activity 的 layout 以 module_activity 开头;
    2.【推荐】Id 资源原则上以驼峰法命名,View 组件的资源 id 建议以 View 的缩写作为前缀。常用缩写参考书籍。
    3.【推荐】图片根据其分辨率,放在不同屏幕密度的 drawable 目录下管理,否则可能在低密度设备上导致内存占用增加,又可能在高密度设备上导致图片显示不够清晰。
    
    Android 基本组件
    4.【推荐】Activity#onSaveInstanceState()方法不是 Activity 生命周期方法,也不保证一定会被调用。它是用来在 Activity 被意外销毁时保存 UI 状态的,只能用于保存临时性数据,例如 UI 控件的属性等,不能跟数据的持久化存储混为一谈。持久化存储应该在 Activity#onPause()/onStop()中实行。
    5.【强制】避免在 Service#onStartCommand()/onBind()方法中执行耗时操作(因为是在主线程),如果确实有需求,应改用 IntentService 或采用其他异步机制完成。
    6.【强制】避免在 BroadcastReceiver#onReceive()中执行耗时操作,如果有耗时工作,应该创建 IntentService 完成,而不应该在 BroadcastReceiver 内创建子线程去做。
    7.【推荐】 添 加 Fragment 时,确保 FragmentTransaction#commit() 在Activity#onPostResume()或者 FragmentActivity#onResumeFragments()内调用。不要随意使用 FragmentTransaction#commitAllowingStateLoss()来代替,任何commitAllowingStateLoss()的使用必须经过 code review,确保无负面影响。
    8.【推荐】对于只用于应用内的广播,优先使用 LocalBroadcastManager 来进行注册和发送,LocalBroadcastManager 安全性更好,同时拥有更高的运行效率。
    9.【强制】Activity或者Fragment中动态注册BroadCastReceiver时,registerReceiver()和 unregisterReceiver()要成对出现。
    
    UI 与布局
    10.【强制】布局中不得不使用 ViewGroup 多重嵌套时,不要使用 LinearLayout 嵌套,改用 RelativeLayout,可以有效降低嵌套数。要找到那些多余的 View(增加渲染延迟的 view),可以用 Android Studio Monitor里的 Hierarchy Viewer 工具,可视化的查看所有的 view。
    11.【推荐】在 Activity 中显示对话框或弹出浮层时,尽量使用 DialogFragment,而非Dialog/AlertDialog,这样便于随Activity生命周期管理对话框/弹出浮层的生命周期。
    12.【推荐】文本大小使用单位 dp,View 大小使用单位 dp。对于 TextView,如果在文字大小确定的情况下推荐使用 wrap_content 布局避免出现文字显示不全的适配问题。之所以文本大小也推荐使用 dp 而非 sp,因为 sp 是 Android 早期推荐使用的,但其实 sp 不仅和 dp 一样受屏幕密度的影响,还受到系统设置里字体大小的影响。
    13.【强制】禁止在设计布局时多次为子 View 和父 View 设置同样背景进而造成页面过度绘制,推荐将不需要显示的布局进行及时隐藏。
    14.【推荐】在需要时刻刷新某一区域的组件时,建议通过以下方式避免引发全局 layout刷新:
    1) 设置固定的 View 大小的宽高,如倒计时组件等;
    2) 调用 View 的 layout 方法修改位置,如弹幕组件等;
    3) 通过修改 Canvas 位置并且调用 invalidate(int l, int t, int r, int b)等方式限定刷新区域;
    4) 通过设置一个是否允许requestLayout的变量,然后重写控件的requestlayout、onSizeChanged 方法,判断控件的大小没有改变的情况下,当进入requestLayout 的时候,直接返回而不调用 super 的 requestLayout 方法。
    
    进程、线程与消息通信
    15.【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。其他会堆积大量的请求或创建大量的线程;
    16.【推荐】 禁止在多进程之间用 SharedPreferences 共享数据,虽然可以(MODE_MULTI_PROCESS),但官方已不推荐。
    
    文件和数据库
    17.【推荐】 SharedPreference 提交数据时,尽量使用 Editor#apply() ,而非Editor#commit()。一般来讲,仅当需要确定提交结果,并据此有后续操作时,才使用 Editor#commit()。
    18.【强制】多线程操作写入数据库时,需要使用事务,以免出现同步问题。
    19.【强制】执行 SQL 语句时,应使用 SQLiteDatabase#insert()、update()、delete(),不要使用 SQLiteDatabase#execSQL(),以免 SQL 注入风险。
    
    Bitmap、Drawable 与动画
    20.【强制】png 图片使用 TinyPNG 或者类似工具压缩处理,减少包体积。
    21.【强制】在 Activity#onPause()或 Activity#onStop()回调中,关闭当前 activity 正在执行的的动画。
    22.【推荐】在动画或者其他异步任务结束时,应该考虑回调时刻的环境是否还支持业务处理。例如 Activity 的 onStop()函数已经执行,且在该函数中主动释放了资源,此时回调中如果不做判断就会空指针崩溃。
    23.【推荐】使用 inBitmap 重复利用内存空间,避免重复开辟新内存。
    24.【推荐】谨慎使用 gif 图片,注意限制每个页面允许同时播放的 gif 图片,以及单个gif 图片的大小。
    
    安全
    25.【强制】禁止使用常量初始化矢量参数构建 IvParameterSpec,建议 IV 通过随机方式产生。
    26.【强制】将 android:allowbackup 属性必须设置为 false,阻止应用数据被导出。
    27.【强制】所有的 Android 基本组件(Activity、Service、BroadcastReceiver、ContentProvider 等)都不应在没有严格权限控制的情况下,将 android:exported 设置为 true。

阿里云证书

总结

除了学习 《Android开发规范》一书之外,还应该:1.学习《Java开发手册》;2.在Android Studio安装规约检查插件不要忽视插件提示的问题,规范的代码习惯能大大减少不必要的bug。打好基础才能走得更远。

参考链接

《阿里巴巴Java开发手册v1.4.0(详尽版)》

《阿里巴巴Android开发规范》

Android规约检查插件

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:48:38  更:2021-08-23 16:50:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:46:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码