阿里程序员的2019Android年终盘点,必备技能知识点,程序员必须收藏

article/2025/7/13 13:14:29

临近年末,回顾总结2019,很多从事Android开发的朋友仍然遇到了很多困难,无法实现突破。

本文旨在通过以下知识点总结 希望能帮助上述陷入移动开发困境的朋友。
所以接下来本篇文章主要介绍 Android 开发中的部分知识点,本文节选自阿里巴巴开发手册,下载地址。文末还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资源 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习,通过阅读本篇文章,您将收获以下内容:

一、Java 语言规范
二、Android 资源文件命名与使用
三、Android 基本组件
四、UI 与布局
五、进程、线程与消息通信
六、文件与数据库
七、Bitmap、Drawable 与动画
八、安全
九、其他

一、Java 语言规范

遵循《阿里巴巴 Java 开发手册》手册,下载地址

二、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 资源名称以小写单词+下划线的方式命名,根据分辨率不同存放在不同的 drawable 目录下,建议只使用一套,例如 drawable-xhdpi。采用规则如下:模块名业务功能描述控件描述_控件状态限定词
    如:module_login_btn_pressed,module_tabs_icon_home_normal

  4. anim 资源名称以小写单词+下划线的方式命名,采用以下规则:模块名逻辑名称[方向|序号]tween 动画资源 : 尽可能以通用的动画名称命名,如 module_fade_in ,module_fade_out , module_push_down_in (动画+方向);frame 动画资源:尽可能以模 块+功能命名+序号。如:module_loading_grey_001

  5. color 资源使用#AARRGGBB 格式,写入 modul_colors.xml 文件中,命名格式采用以下规则:模块名逻辑名称颜色
    如:#33b5e5e5

  6. dimen 资源以小写单词+下划线方式命名,写入 module_dimens.xml 文件中,采用以下规则:模块名_描述信息
    如:1dp

  7. style 资源采用小写单词+下划线方式命名,写入 module_styles.xml 文件中,采用以下规则:父 style 名称.当前 style 名称
    如:

  8. string资源文件或者文本用到字符需要全部写入module_strings.xml文件中,字符串以小写单词+下划线的方式命名,采用以下规则:模块名_逻辑名称
    如:moudule_login_tips,module_homepage_notice_desc

  9. Id 资源原则上以驼峰法命名,View 组件的资源 id 需要以 View 的缩写作为前缀。常用缩写表如下

    其它控件的缩写推荐使用小写字母并用下划线进行分割,例如:
    ProgressBar 对应的缩写为 progress_bar
    DatePicker 对应的缩写为 date_picker

10.大分辨率图片(单维度超过 1000)大分辨率图片建议统一放在 xxhdpi 目录下管理,否则将导致占用内存成倍数增加。
说明:
为了支持多种屏幕尺寸和密度,Android 为多种屏幕提供不同的资源目录进行适配。
为不同屏幕密度提供不同的位图可绘制对象,可用于密度特定资源的配置限定符(在
下面详述) 包括 ldpi(低)、mdpi(中)、 hdpi(高)、xhdpi(超高)、xxhdpi (超
超高)和 xxxhdpi(超超超高)。例如,高密度屏幕的位图应使用 drawable-hdpi/。
根据当前的设备屏幕尺寸和密度,将会寻找最匹配的资源,如果将高分辨率图片放
入低密度目录,将会造成低端机加载过大图片资源,又可能造成 OOM,同时也是资
源浪费,没有必要在低端机使用大图。
正例:
将 144 * 144 的应用图标 PNG 文件放在 drawable-xxhdpi 目录
反例:
将 144 * 144 的应用图标 PNG 文件放在 drawable-mhdpi 目录

三、Android 基本组件

Android 基本组件指 Activity、Fragment、Service、BroadcastReceiver、
ContentProvider 等等。

  1. Activity 间的数据通信,对于数据量比较大的,避免使用 Intent + Parcelable
    的方式,可以考虑 EventBus 等替代方案,以免造成 TransactionTooLargeException。

  2. Activity#onSaveInstanceState()方法不是 Activity 生命周期方法,也不保证
    一定会被调用。它是用来在 Activity 被意外销毁时保存 UI 状态的,只能用于保存临
    时性数据,例如 UI 控件的属性等,不能跟数据的持久化存储混为一谈。持久化存储
    应该在 Activity#onPause()/onStop()中实行。

  3. Activity 间通过隐式 Intent 的跳转,在发出 Intent 之前必须通过 resolveActivity
    检查,避免找不到合适的调用组件,造成 ActivityNotFoundException 的异常。

  4. 避免在 Service#onStartCommand()/onBind()方法中执行耗时操作,如果确
    实有需求,应改用 IntentService 或采用其他异步机制完成。

  5. 避免在 BroadcastReceiver#onReceive()中执行耗时操作,如果有耗时工作,
    应该创建 IntentService 完成,而不应该在 BroadcastReceiver 内创建子线程去做。
    说明:
    由于该方法是在主线程执行,如果执行耗时操作会导致 UI 不流畅。可以使用
    IntentService 、 创 建 HandlerThread 或者调用 Context#registerReceiver
    (BroadcastReceiver, IntentFilter, String, Handler)方法等方式,在其他 Wroker 线程
    执行 onReceive 方法。BroadcastReceiver#onReceive()方法耗时超过 10 秒钟,可
    能会被系统杀死。

  6. 避免使用隐式 Intent 广播敏感信息,信息可能被其他注册了对应
    BroadcastReceiver 的 App 接收。
    说明:


http://chatgpt.dhexx.cn/article/6BP9Fqe1.shtml

相关文章

BAT等大厂必问技术面试题,进阶学习资料!

前言 Android高级架构师需要学习哪些知识呢? 下面总结一下我认为作为一个资深开发者需要掌握的技能点。 一.字节跳动 讲讲面向过程、面向对象、面向切面。 指针和数组的关系和区别。 讲讲Android handler。 队列和栈的区别和用途。 两个栈实现队列。 输入Ur…

iOS技能 - 最新BAT 面试题目记录

关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。 美团 一面 1、简历上写的项目问了一遍,然后开始问…

【大厂】389- 解密国内BAT等大厂前端技术体系-阿里篇(长文建议收藏)

进入2019年,大前端技术生态似乎进入到了一个相对稳定的环境,React在2013年发布至今已经6年时间了,Vue 1.0在2015年发布,至今也有4年时间了。 整个业界在前端框架不断迭代中,也寻找到了许多突破方向,例如跨平…

BAT开源项目哪家强,这15个开源项目告诉你答案

github精选前文传送门: 国产BAT开源谁最牛,这些开源项目告诉你 还担心春节抢不到票,Github标星21K,这两款开源项目值得推荐 程序员接私活必备的10款开源前端后台框架 工欲善其事,必先利其器。平时在项目开发的工程中&…

【Android Studio Gradle】使用Artifactory构建本地仓库

文章目录 1. 说明1.1 本地安装Gradle1.2 构建本地仓库1.2.1 常见镜像地址1.2.2 使用Artifactory构建本地仓库 2. 最终配置 1. 说明 在运行gradlew assemble的时候,出现了gradle的官网:Gradle User Manual 下面就简单来学习一下。简介: Grad…

如何使用TF卡和阿里云盘给surface pro扩容

surface pro作为一款优秀的二合一平板电脑,其特点是轻盈小巧,能够满足日常办公需求,但是随着硬盘增大,价格飞涨,所以现在很多人处于硬盘不够用的窘境,本文介绍两种方法来给surface pro扩容。 话不多说&…

阿里云 SDK 动态IP域名解析

阿里云提供 aliyun sdk&#xff0c;可以通过申请获得的 <accessKeyId> 和 <accessSecret> 在 sdk 环境下&#xff0c;直接控制相应账号下阿里云的所有产品&#xff0c;例如设置域名解析、启动VPC、或者推送短信等等。 目录 获取阿里云key 代码测试 读取解析信息…

图标字体收藏

智能LOGO设计生成器 最值得收藏的Bootstrap免费字体和图标网站 一. PNG透明图片素材网站&#xff0c;谁懒谁用呗。 1. PngImg号称是全世界最大的PNG透明背景图库&#xff0c;目前网站上收集了45000张左右去背图素材&#xff0c;都可以免费下载&#xff0c;并且允许非商业性使…

解密国内 BAT 等大厂前端技术体系之阿里篇

前端框架的不断变化&#xff0c;对不同行业产生了诸多的影响。目前&#xff0c;前端的发展趋势究竟是什么样的&#xff1f;为了解更多的前端趋势相关内容&#xff0c;让我们跟随本文&#xff0c;看一下像阿里巴巴这样的互联网大厂&#xff0c;是怎样做的。 进入 2019 年&#x…

解密国内BAT等大厂前端技术体系-阿里篇(长文建议收藏)

进入2019年&#xff0c;大前端技术生态似乎进入到了一个相对稳定的环境&#xff0c;React在2013年发布至今已经6年时间了&#xff0c;Vue 1.0在2015年发布&#xff0c;至今也有4年时间了。 整个业界在前端框架不断迭代中&#xff0c;也寻找到了许多突破方向&#xff0c;例如跨…

vue调试工具devtoos 初探;vue阿里图标库的引用;解决子组件内容不刷新的问题;

记录几个比较有用的功能点&#xff1a; 一&#xff0c;关于前端调试 可能是我的意识还是在Visual C层面&#xff0c;在我的理解里面&#xff0c;如果没有单步跟踪&#xff0c;那就不是在编程。看到之前的前端同事开发程序的时候都是不停的用console.log&#xff0c;感觉效率很…

购物车--订单模块,练习完成

目标&#xff1a; 在购物车页面&#xff0c;增加一个创建订单的超链接。通过创建订单&#xff0c;在Order表里新增一条数据&#xff0c;同时把session中的订单条目都保存到数据库中。 1、创建两个表&#xff0c;orders用来具体存储每一个订单的细节&#xff0c;order_用来存储…

订单操作-查询所有订单代码实现

订单查询 订单查询页面 order-list.jsp Controller Controller RequestMapping("/orders") public class OrdersController {Autowiredprivate IOrdersService ordersService;//未分页RequestMapping("/findAll.do")public ModelAndView findAll(Request…

企业网上下单订货管理软件源码搭建功能介绍|移讯云订货通订单管理系统

网上下单订货管理软件源码搭建功能介绍|移讯云订货通订单管理系统 一&#xff1a;系统概述和用途 系统基于网络&#xff0c;实现厂家和代理商批发商通过网络下单订货功能。 什么是移讯云订货通。什么是企业订货管理系统。 是一款针对中小型企业通过网络实现&#xff0c;厂家…

订单服务-----功能实现逻辑

订单服务的实现流程&#xff08;确认订单->提交订单->支付&#xff09; 1、整合SpringSession 使用SpringSession的目的是来解决分布式session不同步不共享的问题&#xff0c;其实就是为了让登录信息在订单微服务里共享 注意&#xff1a;由于这里使用springsession的用…

SMBMS订单管理系统(手把手教细致讲解实现全过程) (七)

实现用户管功能 刚刚访问密码直接走前端 现在要发起请求走Servlet&#xff0c;Servlet处理后返回前端页面 Servlet 处理请求调用业务返回页面 业务要查询用户列表&#xff0c;查询角色列表&#xff0c;为了实现分页&#xff0c;需查询pageSize总数。查询从Service层到Dao层…

【电商开发手册】订单-下单

下单需求 所谓下单&#xff0c;本质上就是买卖双方通过确认一系列信息并且签订电子合同的过程 在电商平台的下单过程中&#xff0c;也需要确定买卖双方的一系列信息&#xff1a; 买方&#xff1a;用户确认收货地址、支付方式、配送方式等等 卖方&#xff1a;卖方需要进行供…

如何规范业务管理过程?低代码平台助力订单管理系统建设

编者按&#xff1a;本文介绍了订单管理系统的概念以及作用&#xff0c;并进一步展现了低代码平台是如何为企业实现订单管理科学化&#xff0c;规范业务管理过程的。 关键词&#xff1a;老厂商&#xff0c;流程管理&#xff0c;订单管理 什么是订单管理系统 订单管理系统(OMS)…

【网课平台】Day13.订单支付模式:生成支付二维码与查询支付

文章目录 一、需求&#xff1a;生成支付二维码1、需求分析2、表设计3、接口定义4、接口实现5、完善controller 二、需求&#xff1a;查询支付结果1、需求分析2、表设计与模型类3、接口定义4、接口实现步骤一&#xff1a;查询支付结果步骤二&#xff1a;保存支付结果&#xff08…