加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

腾讯架构师教你怎样写出Android类型文档

发布时间:2019-11-01 22:49:28 所属栏目:业界 来源:techlearn
导读:媒介 一份及格的代码不该只满意于实现成果, 更应该遵循精采的类型. 遵循精采的代码类型有利于: 晋升措施不变性, 镌汰代码隐患, 低落妨碍率; 加强可扩展性, 大幅进步维护服从; 同一尺度, 晋升多人协作服从; 利便新人快速上手, 在项目组职员产生变换时担保项

逼迫:

  • 机关xml优先行使ConstraintLayout, 可以担保无嵌套的环境下完成包罗部门控件同时显隐需求在内的99%的机关要求;
  • 不应承行使ScrollView包裹ListView/GridView/ExpandableListVIew等列表View, 伟大多项式列表可以行使多ItemType举办处理赏罚;

保举:

  • 在Activity中表现对话框或弹出浮层时, 只管行使DialogFragment, 而非Dialog/AlertDialog, 便于随Activity生命周期打点弹窗的生命周期;

历程/线程/动静推送

逼迫:

  • 存在多历程的环境时, Application中的初始化代码要按照历程别离处理赏罚, 停止初始化不须要的营业;
  • 新建线程时, 必需通过线程池的方法, 不应承回收new Thread()的方法;
  • Activity/Fragment中行使Handler时, 必需行使静态内部类+WeakReferences方法可能在onStop中挪用handler.removeCallbacksAndMessages;

保举:

  • 多历程间共享数据行使ContentProvider更换SharedPreferences#MODE_MULTI_PROCESS;

文件/数据库

逼迫:

  • 行使体系API获取文件路径, 停止手拼字符串, 例: android.os.Environment#getExternalStorageDirectory(), Context#getFilesDir(), 错误示例: File file = new File("/mnt/sdcard/Download/Album", name);
  • 当行使外部存储时, 必需搜查外部存储的可用性: Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
  • 数据库Cursor行使之后必需封锁, 以免内存走漏;

保举:

SharedPreference仅存储简朴数据范例, 不要存储伟大数据, 如json数据/Bitmap编码等;

SharedPreference提交数据时, 只管行使Editor#apply(), 而非Editor#commit();

图片/动画

逼迫:

  • 加载大图时必需在子线程中处理赏罚, 不然会卡UI;
  • 在Activity.onPause()/onStop()中封锁当前activity正在执行的动画;

保举:

  • Android图片提议转化为WebP名目, 可以镌汰APK体积;
  • 动画只管不要行使AnimationDrawable, 占用很是多内存;
  • 行使ARGB_565取代ARGB_888, 镌汰内存占用;
  • 当Animation执行竣事时, 挪用View.clearAnimation()开释相干资源;

安详性

逼迫:

  1. 上线包必需夹杂;
  2. 加解密的秘钥/盐不应承硬编码到代码中, 以防反编译获取;
  3. Https处理赏罚时必需校验证书, 不应承直接接管恣意证书;
  4. 行使Android的AES/DES/DESede加密算法时, 不要行使默认的加密模式ECB, 应表现指定行使CBC/CFB加密模式;
  5. 榨取把敏感信息打印到log中;
  6. 在应用宣布时必需确保android:debuggable为false;
  7. 必需操作X509TrustManager子类中的checkServerTrusted函数效验处事器端证书的正当性,
  8. 必需将android:allowbackup属性配置为false, 防备adb backup导出应用数据。 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读