花费了三天时间学习了阿里巴巴 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规约检查插件

三天,我通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范相关推荐

  1. Apsara Clouder基础技能认证-阿里巴巴编程规范考试流程

    1.阿里Java开发规范考试网站为:阿里巴巴编码规范-阿里云全球培训中心 2.网址打开后页面为下图,点击"立即考试(图一)"-"进入考试(图二)" (图一) ( ...

  2. Apsara Clouder基础技能认证-阿里巴巴编程规范考试真题

    作为从事IT行业的编程开发者,我们必须要遵守IT行业编程开发的规范,俗话说:"无规则不成方圆",大家都会约定俗成的遵守.下面是我的总结在考试中所遇到的题型,字体背景标记为黄色就是答 ...

  3. Apsara Clouder基础技能认证:实现调用API接口

    我是葛连吉,抽出半上午的时间终于把这个Apsara Clouder基础技能认证:实现调用API接口的证书给考了出来,这次是阿里云优惠,免费就可以学习该内容并且考证! 我给大家分享一个考试的知识点 一. ...

  4. 【考试记录】Apsara Clouder基础技能认证:实现调用API接口

    从今天开始,准备把阿里的认证尽可能多的考出来.原因有这么几个:研究生要毕业了,除了把论文写好,还有找工作的压力,所以想尽可能多的考出几个证来证明自己的学习能力:研究生毕业后想找个教师的工作,所以得以身 ...

  5. 阿里云Apsara Clouder基础技能认证:阿里巴巴编码规范题库(最新题库大全)

    阿里云Apsara Clouder基础技能认证:阿里巴巴编码规范(最新题库大全) 先小试几题(附答案解析) 1. 2. 3. 4.索引 本人刚刚考过,小纪念一下,^-^ 更加详细的题库链接,word文 ...

  6. 【考试记录】Apsara Clouder基础技能认证:阿里巴巴编码规范(Java)

    一:考试总结 我是考了一次就过了,看了一晚上和一上午,开发手册看了一遍,考题分析看了两遍,次要资料里的东西看了一遍.(文章最后有资料) 先看主要资料里的Java开发手册,这个是官方文档,考题都是从里面 ...

  7. Apsara Clouder基础技能认证:阿里巴巴编码规范相关问题总结

    作为一名合格的开发,基础还是很重要滴,不知道会不会被封杀,哎,为了小哥哥小姐姐,总结一波,当然考试之前阿里编码规范我可是看了三遍左右,把我自己总结的黄金考题看了又看,第一次考了74,第二次,担心不过, ...

  8. Apsara Clouder基础技能认证:阿里巴巴编码规范

    一. 编程规约 (一) 命名风格 1. [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例:_name / __name / $name / name_ / nam ...

  9. 【考试记录】Apsara Clouder基础技能认证:阿里云RPA(机器人流程自动化)- 初级入门(可视化)

    一:考试总结 这个考试说实话,跟编程一点关系没有,主要讲的是可视化的批量提交店主上架宝贝的.把视频看下即可,如果有从事这种的,可以继续考PRA的高级,我是不准备考了,跟我工作没啥关系.试题基本就是单选 ...

最新文章

  1. swift - idfa(唯一标示/下载量/广告追踪)
  2. java 反射 protected_Java反射机制设置对象里的private、protected属性值
  3. string类具体用法
  4. 数字测图原理与方法的实习日志_【技术】消费级无人机倾斜摄影测量1:500测图方法及精度研究...
  5. python爬虫源码下载 视频_Python爬虫下载视频文件部分源码
  6. 中专学计算机毕业后的去向作文,中专生的毕业感言作文
  7. linux怎么用两个进程传值,linux下的C开发14,可执行程序如何传递参数?模拟shell执行命令...
  8. 如何在Tomcat中设置JNDI数据库连接池-Spring教程示例
  9. 08-图7 公路村村通 (30 分)
  10. summit网页上的smt打不开 提示无法启动应用程序 请与应用程序供应商联系
  11. android外接usb摄像头demo_手机通过USB连接打印机使用教程,手机连接打印机系列之二...
  12. 自定义图标——阿里图标库
  13. PCB正片与负片之分以及实际使用建议
  14. 使用iText对pdf中查找关键字坐标进行填充
  15. 轻松解决U盘中病毒,文件变成.exe执行文件的问题
  16. The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
  17. maya模型展开UV
  18. 骑士旅行问题(骑士走棋盘)
  19. 免费使用GPU服务器
  20. 【常用软件】Ubuntu-划词翻译软件Stardict

热门文章

  1. mysql 自动化运维开发_Python自动化运维开发----基础(十三)Mysql数据库基础
  2. 2018中国大学生程序设计竞赛 – 网络选拔赛 1001 Buy and Resell [模拟]
  3. Linux基础(2)---系统基础
  4. 用python画小仓鼠教程_看看萌萌哒的仓鼠是怎么画出来的,最详细的图文教程,别错过!...
  5. mavell 7040使用方法
  6. 基于Android的手机点名签到学生请假考勤系统
  7. 搭建Ubuntu 10.04系统(嵌入式开发)
  8. 使用Python提取Excel中单元格中的某一段内容(包含某特定字符且前后以逗号作为分隔符的内容)
  9. Jquery 调用 浏览器打印机
  10. [misc]T型知识实践结构的力量