三天,我通过了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规约检查插件
三天,我通过了Apsara Clouder基础技能认证:阿里巴巴Android开发规范相关推荐
- Apsara Clouder基础技能认证-阿里巴巴编程规范考试流程
1.阿里Java开发规范考试网站为:阿里巴巴编码规范-阿里云全球培训中心 2.网址打开后页面为下图,点击"立即考试(图一)"-"进入考试(图二)" (图一) ( ...
- Apsara Clouder基础技能认证-阿里巴巴编程规范考试真题
作为从事IT行业的编程开发者,我们必须要遵守IT行业编程开发的规范,俗话说:"无规则不成方圆",大家都会约定俗成的遵守.下面是我的总结在考试中所遇到的题型,字体背景标记为黄色就是答 ...
- Apsara Clouder基础技能认证:实现调用API接口
我是葛连吉,抽出半上午的时间终于把这个Apsara Clouder基础技能认证:实现调用API接口的证书给考了出来,这次是阿里云优惠,免费就可以学习该内容并且考证! 我给大家分享一个考试的知识点 一. ...
- 【考试记录】Apsara Clouder基础技能认证:实现调用API接口
从今天开始,准备把阿里的认证尽可能多的考出来.原因有这么几个:研究生要毕业了,除了把论文写好,还有找工作的压力,所以想尽可能多的考出几个证来证明自己的学习能力:研究生毕业后想找个教师的工作,所以得以身 ...
- 阿里云Apsara Clouder基础技能认证:阿里巴巴编码规范题库(最新题库大全)
阿里云Apsara Clouder基础技能认证:阿里巴巴编码规范(最新题库大全) 先小试几题(附答案解析) 1. 2. 3. 4.索引 本人刚刚考过,小纪念一下,^-^ 更加详细的题库链接,word文 ...
- 【考试记录】Apsara Clouder基础技能认证:阿里巴巴编码规范(Java)
一:考试总结 我是考了一次就过了,看了一晚上和一上午,开发手册看了一遍,考题分析看了两遍,次要资料里的东西看了一遍.(文章最后有资料) 先看主要资料里的Java开发手册,这个是官方文档,考题都是从里面 ...
- Apsara Clouder基础技能认证:阿里巴巴编码规范相关问题总结
作为一名合格的开发,基础还是很重要滴,不知道会不会被封杀,哎,为了小哥哥小姐姐,总结一波,当然考试之前阿里编码规范我可是看了三遍左右,把我自己总结的黄金考题看了又看,第一次考了74,第二次,担心不过, ...
- Apsara Clouder基础技能认证:阿里巴巴编码规范
一. 编程规约 (一) 命名风格 1. [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例:_name / __name / $name / name_ / nam ...
- 【考试记录】Apsara Clouder基础技能认证:阿里云RPA(机器人流程自动化)- 初级入门(可视化)
一:考试总结 这个考试说实话,跟编程一点关系没有,主要讲的是可视化的批量提交店主上架宝贝的.把视频看下即可,如果有从事这种的,可以继续考PRA的高级,我是不准备考了,跟我工作没啥关系.试题基本就是单选 ...
最新文章
- swift - idfa(唯一标示/下载量/广告追踪)
- java 反射 protected_Java反射机制设置对象里的private、protected属性值
- string类具体用法
- 数字测图原理与方法的实习日志_【技术】消费级无人机倾斜摄影测量1:500测图方法及精度研究...
- python爬虫源码下载 视频_Python爬虫下载视频文件部分源码
- 中专学计算机毕业后的去向作文,中专生的毕业感言作文
- linux怎么用两个进程传值,linux下的C开发14,可执行程序如何传递参数?模拟shell执行命令...
- 如何在Tomcat中设置JNDI数据库连接池-Spring教程示例
- 08-图7 公路村村通 (30 分)
- summit网页上的smt打不开 提示无法启动应用程序 请与应用程序供应商联系
- android外接usb摄像头demo_手机通过USB连接打印机使用教程,手机连接打印机系列之二...
- 自定义图标——阿里图标库
- PCB正片与负片之分以及实际使用建议
- 使用iText对pdf中查找关键字坐标进行填充
- 轻松解决U盘中病毒,文件变成.exe执行文件的问题
- The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
- maya模型展开UV
- 骑士旅行问题(骑士走棋盘)
- 免费使用GPU服务器
- 【常用软件】Ubuntu-划词翻译软件Stardict
热门文章
- mysql 自动化运维开发_Python自动化运维开发----基础(十三)Mysql数据库基础
- 2018中国大学生程序设计竞赛 – 网络选拔赛 1001 Buy and Resell [模拟]
- Linux基础(2)---系统基础
- 用python画小仓鼠教程_看看萌萌哒的仓鼠是怎么画出来的,最详细的图文教程,别错过!...
- mavell 7040使用方法
- 基于Android的手机点名签到学生请假考勤系统
- 搭建Ubuntu 10.04系统(嵌入式开发)
- 使用Python提取Excel中单元格中的某一段内容(包含某特定字符且前后以逗号作为分隔符的内容)
- Jquery 调用 浏览器打印机
- [misc]T型知识实践结构的力量