阿里Android开发手册--结合自身需要注意的几点

成功混入Alibaba内部偷师Android规范文档 前言 一份合格的代码不应只满足于实现功能, 更应该遵循良好的规范. 遵循良好的代码规范有利于: 提升程序稳定性, 减少代码隐患, 降低故障率; 增强可扩展性, 大幅提高维护效率; 统一标准, 提升多人协作效率; 方便新人快速上手, 在项目组人员发生变动时保证项目进度; 这里梳理一下Android开发过程中需要注意的一些地方, 包括多个部分, 另外根据约束力强弱分为两类: 强制:如... 阅读详情

阿里Android开发手册–结合自身需要注意的几点

Android资源文件命名和使用

在Android开发过程,有时候头痛的不是需求实现不了,往往就是命名,阿里给出的这要命名规则,大大地减少了我们开发过程不必要的浪费时间

  1. 所有资源文件带上模块前缀,都小写
  2. layout的命名规则(模块名_样式名称)

    Activity 的 layout 以 module_activity 开头
    Fragment 的 layout 以 module_fragment 开头
    Dialog 的 layout 以 module_dialog 开头
    include 的 layout 以 module_include 开头
    ListView 的行 layout 以 module_list_item 开头
    RecyclerView 的 item layout 以 module_recycle_item 开头
    GridView 的行 layout 以 module_grid_item 开头
    
  3. drawable资源名称(模块名_业务功能描述_控件描述_控件状态限定词)

    module_login_btn_pressed
    module_tabs_icon_home_normal
    
  4. anim资源命名(模块名_逻辑名称_方向[序号])

    module_fade_in
    module_fade_out
    module_push_down_in 
    
  5. 颜色资源名称(模块名_逻辑名称_颜色)

    <color name="module_btn_bg_color">#33b5e5e5</color>
    
  6. dimen资源(模块名_描述信息)

    <dimen name="module_horizontal_line_height">1dp</dimen>
    
  7. style资源名称(父 style 名称.当前 style 名称)

    <style name="ParentTheme.ThisActivityTheme">
    …
    </style>
    
  8. string资源文件名称(模块名_逻辑名称)

    moudule_login_tips
    module_homepage_notice_desc
    

Android四大组件

  1. 定义全局类 Toast和log定义成工具类 Toast避免了连续弹出时不能取消上一次的现象 log可以统一关闭

  2. 如果广播只用于应用内 最好使用LocalBroadcastManager.getInstance(context).sendBroadcast(intent)发送广播,避免了广播泄露以及被拦截,同时相对全局广播本地广播更加高效

  3. list的adapter中的item无论是否有内容都要设置(例如文本为空都要设置setText(“”)),避免在滑动过程中出现出现内容的混乱
  4. 尽量避免嵌套的Fragment

    1. onActivityResult()方法的处理错乱,内嵌的 Fragment 可能收不到该方法的回调,需要由宿主 Fragment 进行转发处理;
    2. 突变动画效果;
    3. 被继承的 setRetainInstance(),导致在 Fragment 重建时多次触发不必要的逻
      辑
  5. 避免在 Service#onStartCommand()/onBind()方法中执行耗时操作,如果确实有需求,应改用 IntentService 或采用其他异步机制完成,因为IntentService实际是Service的子类,对其方法进行了重写,其实IntentService在执行onCreate的方法的时候,其实开了一个线程HandlerThread

UI和布局

  1. 尽量使用RelativeLayout替代LinearLayout,减少嵌套的层级,可以使用AS上的Hierarachy Viewer 查看View的嵌套层级

  2. Activity中的对话框尽量使用DialogFragment,而不是Dialog/AlertDialog,好处是可以随着Activity生命周期管理对话框的生命周期

  3. 禁止设置子View和父View为同样的背景导致的过度绘制

  4. 帧动画尽量避免使用AnimationDrawable,图片会加载到内存中,如果图片过多会导致OOM

  5. ScrollView不要嵌套LsitView/GridView/ExpandableListview,处理不好会导致滑动的冲突,这样也会把所有的Item加载到内存中,可以使用NestedScrollView处理

进程、线程与消息通信

  1. 新建线程时,必须通过线程池提供(AsyncTask或者ThreadPoolexecutor或者其他形式自定义的线程池)

  2. 网络操作不要放在主线程中调用

  3. 不要在非UI线程中初始化ViewStub,不然会报null,ViewStub是个好东西啊,可以延迟View加载,渲染时间会减少

  4. 不要硬编码文件路径,使用api访问
    android.os.Environment#getExternalStorageDirectory()
    android.os.Environment#getExternalStoragePublicDirectory()
    android.content.Context#getFilesDir()
    android.content.Context#getCacheDir

  5. 使用到外部存储的时候,必须检查外部存储的可用性(Environment.getExternalStorageState())

  6. SharedPreference只能存储简单数据类型,复杂的数据类型应该使用文件、数据库等其他方式存储(切记不要讲复杂的数据转成String)

文件和数据库

  1. 执行SQL语句的时候,应该使用SQLiteDatabase的insert()、 update()、 delete()
    方法,尽量避免使用SQL语句

Bitmap、Drawable与动画

  1. 操作图片时,要放在异步线程中进行,可能会导致卡顿

  2. 对一些资源图片用tinypng进行压缩

  3. 图片使用完成后,要释放资源

  4. 页面退出时要清理动画资源

阿里Android开发手册正式版一览     新年伊始,春意盎然之际,阿里巴巴在2月28日再度为工程师们送上了一份重磅开春好礼:《阿里巴巴Android开发手册》。    该手册长达66页,是阿里巴巴集团各大 Android 开发团队的集体智慧结晶和经验总结,将淘宝、天猫、闲鱼、钉钉等 App 长期开发迭代和优化经验系统地整理成册, 以指导 Android 开发者更加高效、高质量地进行 App 开发,呈现给用户体验好、性能优、稳定性佳... 阅读详情

相关推荐

【一步到位】Android Studio 实现安卓连接阿里云物联网云平台

最新版本目前是Android Studio Iguana | 2024.1.2,你可以到官网上去找之前的版本,手上有工作项目的不要去轻易尝试,说不定你就编译失败了,失败了也不要担心,解决就可以了。

m0_73799445的博客 1万+

Frida Hook方法大全(普通、重载、构造、hook某类下的所有方法、主动调用)

【代码】Frida Hook方法大全(普通、重载、构造)

云霄IT的博客 4979

安卓使用阿里云的日志服务

安卓日志阿里云的日志服务一、说明二、操作步骤1. 在阿里云上开一个日志服务的project2. 新建一个Logstore3. 新建数据接入4. 新建 accesskey5. 下载sdk6. 设置application.manifest权限三、运行示例代码1. 使用android studio打开示例项目,按提示修改以下参数:2. 运行后,点击app上的 LOG UPLOAD按钮 一、说明 日志对于跟踪程序的运行非常重要。安卓通常的日志是通过控制台打印,也可以通过一些组件记录到手机文件系统中。为了方便远程调试

猿来这样-谢厂节的博客 2500

阿里巴巴Android开发规范

阿里云出的阿里巴巴Android开发手册,这几天看了下个人感觉不错,里面的知识点虽然都很基础,但是都是开发中很实用和很容易碰到的问题。 主要讲了命名规范、组件使用注意、安全等问题,有兴趣的同学可以下载看看,下载地址: https://edu.aliyun.com/course/813 还可以在阿里云的网站上参加阿里云认证考试,需要交9.9参加考试,考试比较简单,只要看看开发手册基本都能过,考...

认真做事,开心生活 1653

安卓-Android如何集成支付宝支付(集成阿里支付)详解。Android接入alipay支付

安卓app集成阿里支付流程:所需必备阿里支付的参数:二级目录三级目录 所需必备阿里支付的参数: app_id 商户签约拿到的app_id,如:2013081700024223。 你在阿里支付注册的app商户时,拿到的app id pid。商户签约拿到的pid, 如:2088102123816631 pid:partner_id的简称,合作伙伴身份,支付宝账号对应的支付宝唯一用户号(支付宝账户的唯一标识),以2088开头的16位纯数字组成。 支付宝账户:用于登录支付宝的账户,一般为手机号或电子邮箱。

ruiruiddd的博客 6204

阿里巴巴Android开发规范2022最新版

阿里Android开发规范,适用于android开发。

手把手教你开发安卓推送通知服务(使用阿里云 emas)

集成阿里云 emas 推送通知服务

hansenzz的博客 3737

阿里Android规范

阿里Android规范,最新版。。。。。。。。。。。。。。。。。。

《阿里巴巴Android开发手册》Executors进程池创建迷之问题探讨

其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:架构师筑基必备技能Android框架体系架构(高级UI+FrameWork源码)360°Androidapp全方位性能调优设计思想解读开源框架NDK模块开发移动架构师专题项目实战环节移动架构师不可不学习微信小程序混合开发的flutterAndroid学习的资料我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。

2301_77595001的博客 876

阿里Android开发规范

阿里Android开发规范,让你的安卓代码规范起来!

阿里巴巴编码规范真题+满分答案+附带部分题库解析.zip

考试之前多看几遍真题,逢考必过!本人就是多看了几遍这些题目,都是原题,最终92分通过考试! 压缩包内含清单: 1. 一份满分答卷txt 2. 三份考试真题解析word 3. 个人归纳的一些真题word 绝对的物美价廉,物超所值~

【字节、小米、阿里】Android开发真实面试经历

面试官还提到了一个实际项目中如何处理。

Eqiqi的博客 1316

lofar谱 matlab_一种用于分类识别的线谱增强及特征提取方法与流程

本发明属于声信号处理技术领域,具体涉及一种用于分类识别的线谱增强及特征提取方法。背景技术:水下声音目标的被动探测和识别领域中,利用舰船辐射噪声对舰船类型进行识别是十分常见的。舰船辐射噪声通常由机械噪声,螺旋桨噪声和水动力噪声三部分构成,前两种信号是噪声的线谱和连续谱的主要来源。其中线谱由于具有较高的信噪比,并且携带着声源特征信息,而被广泛研究和应用。但是目前的识别方法中,因为连续谱信息缺乏较为明确...

weixin_39517859的博客 5476

阿里巴巴Android开发手册读后笔记

阿里巴巴Android开发手册读后笔记 通过前边一段时间的阅读,把手册中的内容整理了一下,做了一篇读后笔记。 个人觉得以下内容是在开发中需要注意的。 这里放个链接,是阿里巴巴开发手册 ,需要的可以去下载 Android 基础组件 1.【强制】Activity 间的数据通信,对于数据量比较大的,避免使用 Intent + Parcelable 的方式,可以考虑 EventBus ...

samuelnotes的专栏 7546

WebRTC音频传输实战:从采集到播放的完整链路解析(附RTP包处理细节)

本文深入解析了WebRTC音频传输的完整链路,从麦克风采集、音频处理与编码,到RTP打包、网络发送,再到接收端的NetEQ抗抖动处理与最终播放。文章以Linux PulseAudio为例,详细剖析了线程模型、缓冲区管理及RTP包处理等关键细节,旨在帮助开发者优化实时音频应用的延迟、卡顿与回声问题。

tea88的博客 852

带标签的PHM2009齿轮箱数据集

PHM2009附加数据集—带标签的齿轮箱数据集,可用于测试算法

qq_39379705的博客 4873

2024年最全阿里巴巴Android开发手册(1),阿里二面是什么

找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。多练。(视频优势是互动感强,容易集中注意力)你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。以上就是总结的关于在面试的一些总结,希望对大家能有些帮助,除了这些面试中需要注意的问题,当然最重要的就是刷题了,这里放上我之前整理的一份超全的面试专题PDF还有。

2401_84557161的博客 891

LaTex的下载与安装(2024小白+windows系统)

本文主要介绍了Latex的下载与安装,还包括安装过程中遇到的小问题的解决。

m0_53096519的博客 2万+

阿里巴巴Java开发手册学习记录

严禁使用英文 + 拼音混合使用类名应所有单词的首字母大写,除了(UserDO,XxxDTO, XxxPo等)抽象类的应以Abstract/Base开头(之前看一个文章就是因为XxxDTO方法的命名为isXxxXxx(),导致方法被错误的序列化,造成了线上事故,文章:https://mp.weixin.qq.com/s/994BAkKPEeBz_gs_6LN2DQ)如果模块、接口、类、方法使用了设计模式,应体现在命名中领域模型命名规约数据传输对象:xxxDTO, xxx为业务领域相关。

qq_50876039的博客 395

Mac上VMware Fusion手动安装VMware Tools实现跨系统复制粘贴

本文详细指导了在Mac的VMware Fusion中手动安装VMware Tools的完整流程,以解决虚拟机与宿主机之间无法复制粘贴的常见问题。通过定位安装镜像、挂载、解压并运行安装脚本,最终实现跨系统无缝数据交换,提升工作效率。

orange的博客 698

CMakeTestCCompiler.cmake错误解决

CMakeTestCCompiler.cmake错误解决欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 最近编译项目的时候,遇到一个cmake的错误,具体错误信息如下: /path-to-pr

昨夜星辰的博客 2万+

毕业三年,从滴滴实习到阿里P6(安卓开发)

前言 我毕业于某二线城市一所双非一本学校,现已毕业三年,做了三年安卓开发,从滴滴小实习生到现在阿里P6,虽然比我优秀的大有人在,但是这一路还是很感慨。 从实习说起 前面说了,我就读于一所双非本科院校,当时我自认为我在校期间学习努力,应当配得上大厂的offer,所以我的简历都往大厂投了。 但是简历都石沉大海,很狗血的是就当我要放弃的时候收到了vivo的面试和阿里的内推面试,只是最后都挂了,但是这反而给了我坚持的动力,继续往大厂投,然后收到了滴滴的面试并且成功拿到offer。 一共二面,得亏我学习努力,面试官问

weixin_48091641的博客 329

博途PLC S7-1200/1500 ModbusTcp通信SCL代码篇(轮询)

博途PLC MODBUS TCP的详细讲解和注意事项,可以参看下面这篇博文,这里不在赘述。这篇作为SCL代码篇主要给出SCL语言下的轮训写法和注意事项。博途PLC1200/1500PLC ModbusTcp通信(轮询处理)_RXXW_Dor的博客-优快云博客。............

RXXW_Dor的博客 8424

Obsidian安卓端同步及使用(Remotely Save+阿里云同步S3)

Obsidian安卓端同步及使用(Remotely Save+阿里云同步S3)

qq_51561709的博客 1万+

Apifox接口测试+自动化测试

Apifox 接口测试+自动化测试快速入门!

程序员小杨哥的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

读阿里巴巴 Android 开发手册的总结

code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群作者:名聪小先生链接:https://www.jianshu.com/p...

weixin_38754349的博客 148

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: View的post()源码分析
下一篇: 【Android自定义控件】之仿网易星球浮动小球
zc2echo
博客等级 码龄9年 6粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值