成为 Android 开发人员的最佳途径 – 完整路线图

news2024/9/23 21:32:08

Android 是一个开源操作系统,基于 Linux 内核,用于智能手机、平板电脑等移动设备。此外,它还为智能手表和 Android TV 开发。它们每个都有一个专门的界面。Android 一直是智能手机最畅销的操作系统之一。Android 操作系统由谷歌于 2005 年收购的 Android Inc. 开发游戏、音乐播放器、相机等各种应用程序都是为这些智能手机构建的,可在 Android 上运行。Google Play Store 拥有超过 330 万个应用程序。如今,Android 在全球范围内仍然占据主导地位。大约 75% 的世界人口喜欢使用 Android,而 iOS 的比例仅为 15%。这是一个拥有巨大应用市场的操作系统。

为什么是 Android?(先确定目标?)

因此,在进入完整的 Android 路线图之前,你应该在心中有一个明确的目标,即为什么他/她想要学习 Android?是为了你的大学学术项目吗?还是为了你的长期职业?或者你想开发应用程序来创业?所以首先要有一个明确的目标。你为什么想要学习 Android?例如,如果你想为你的大学学术项目学习 Android,那么只需学习 Android 的初级知识就足够了。同样,如果你想建立自己的长期职业生涯,那么你也应该学习专业或高级的东西。所以这取决于你,你可以决定为什么要学习 Android。

如何学习 Android?

在 Android 中,编程使用两种语言:JAVA 或 Kotlin和XML(扩展标记语言)。XML文件处理设计、演示、布局、蓝图等(作为前端),而 JAVA 或 KOTLIN 处理按钮、变量、存储等的工作(作为后端)。对于 Android 初学者来说,最大的困惑是选择 Java 还是 Kotlin ?所以先试着克服这种困惑。

Java 还是 Kotlin?

Kotlin 是Google 宣布的 Android 应用开发官方语言 ,也是使用最广泛的语言。Play Store 中的许多应用都是用 Kotlin 构建的,它也是 Google 支持最多的语言。Kotlin 比 Java 更快、更简单。Kotlin 还包含许多 Java 中没有的新功能和库。

Java 是Android 使用的原生语言,它帮助应用程序与直接使用 Java 的操作系统和硬件进行通信。该语言允许创建任何程序,并支持几乎所有类型的机器,以及 OS X,无论是 Android、Windows 还是 Linux。Java 由 Sun Microsystems(现为 Oracle 旗下)开发,人们可以将微服务与 Java 结合使用。

Kotlin 是一种跨平台编程语言,可以用作 Android 应用开发的 Java 替代品。它也被谷歌宣布为“官方”语言。唯一显著的区别是 Kotlin 删除了 Java 的一个特性,例如空指针异常。它还删除了每行末尾的分号。简而言之,与 Java 相比,Kotlin对初学者来说要简单得多,现在大多数开发人员也从 Java 转向 Kotlin 进行 Android 应用开发。

学习资源

网上有大量的资源和视频,开发人员不知道从哪里开始学习所有概念。最初,作为初学者,如果您被如此多的概念弄得不知所措,请不要害怕并停止学习。要有耐心,探索并坚持下去。

学习路线图

从 Android 概述开始。阅读一些与 Android 相关的博客,并研究一些与 Android 相关的东西。例如,阅读有关 Android 开发简介、Android 历史、Android 不同版本的博客,以及诸如为什么 Kotlin 会取代 Java 进行 Android 应用开发等主题,并做好完整的心理准备,开始您的 Android 之旅。让自己有学习 Android 的自觉性,并在 Android 上构建一些很棒的项目。定期这样做,并开始逐个学习 Android 的新概念。在开始您的旅程之前,参加一些关于 Android 的研讨会或会议会更好。明确您的目标并朝着目标前进。

1)编程

可以将此步骤视为先决条件。在开始学习 Android 之前,请先学习这些编程语言。

  • Java 编程语言
  • Kotlin 编程语言
  • 熟悉 XML(可扩展标记语言)

2)Android Studio

在使用工具之前,最好先了解一下。Android Studio 是 Google Android 操作系统的官方集成开发环境,基于 JetBrains 的 IntelliJ IDEA 软件构建,专为 Android 开发而设计。

  • 文件结构:
    。AndroidManifest.xml 文件
    。Java 文件
    。可绘制文件
    。布局文件
    。mipmap 文件
    。colors.xml 文件
    。strings.xml 文件
    。style.xml 文件
    。build.gradle(模块:app)文件

  • Android Studio 概述:
    。创建新项目
    。重新打开、关闭、保存项目
    。创建新的activity、classes、drawable资源文件
    。在模拟器的 AVD 或真实设备等上运行该应用程序。
    。创建新项目
    。重新打开、关闭、保存项目
    。创建新的activity、classes、drawable资源文件
    。在模拟器的 AVD 或真实设备等上运行该应用程序。

3)Android 组件
Android 应用程序由一些必要的构建块组成。这些松散耦合的组件由应用程序清单文件绑定,该文件包含每个组件的描述以及它们如何交互。

  • Activity:
    。Activity life cycle
    。Handle Activity State Changes
    。Understand Tasks and Back Stack
    。Processes and Application Lifecycle
  • Services:
    。Types of Android Services
    。The Life Cycle of Android Services
  • Content Provider:
    。Content URI
    。Operations in Content Provider
    。Working of the Content Provider
    。Creating a Content Provider
  • Broadcast Receiver:
    。隐式广播异常

4)简单的UI设计

了解 Android 的不同组件后,开始探索下面给出的一些简单的 UI 设计。
探索不同的布局:
。Frame
。Linear
。Relative
。Constraint
查看元素:
。TextView
。EditText
。Buttons
。ImageView
意图:
。Implicit
。Explicit
。Intent Filter

5)复杂的UI设计
一旦你掌握了简单的 UI 设计,就可以直接进入复杂的 UI 设计部分,例如:

  • ListView
  • RecycleVIew
  • Fragments
  • Dialogs
  • Toast
  • Bottom Sheets
  • Navigation Drawer
  • Tabs
  • Material Design
  • Some inserting Animations

6)存储
在Android中,存储系统有三种类型:

  • Shared Preferences
  • 文件系统
  • 数据库
    。RoomDB

7) Build
Gradle
Debug/ Release Configuration

8)线程

  • Threads
  • Looper

9)调试
开发人员最重要的技能之一是调试技能。因此开发人员必须学习以下内容:

  • Exceptions
  • Error Handling
  • Logging
  • Memory Profiling

10)内存泄漏

  • 内存泄漏的原因
  • 检测并修复内存泄漏
  • Context

11)第三方库

  • image加载库
    。Glide
    。Picasso
    。Fresco
    。COIL
  • 依赖注入
    。Dragger
  • 联网
    。Retrofit
  • 多线程
    。Coroutines
    。Rxjava

12) Android Jetpack
在其官方网站上,Android Jetpack 表示它是一套库、工具和架构指南,可帮助您快速轻松地构建出色的 Android 应用。它提供了通用的基础架构代码,因此您可以专注于让您的应用与众不同的方面。

  • AppCompat 库
  • 架构组件
  • 动画和过渡
  • Android Ktx
  • 导航
  • 分页
  • 切片
  • 工作管理器

13)Android 架构
Android世界中著名的三大架构是:

  • MVVM (模型-视图-视图模型)
  • MVI(模型视图意图)
  • MVP(模型视图演示者)

14)Firebase

  • FCM(Firebase 云消息传递)
  • 分析
  • 远程配置
  • 应用程序索引

15)单元测试

  • 本地单元测试
  • 仪器测试

16)安全

  • 加密/解密
  • Proguard

17)应用发布

  • 已签名的 APK
  • Play 商店

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2158504.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【高阶用法】uniapp的i18n/修复/增强/App无重启更换语言

痛点 在i18n多语言模块使用过程中,发现下面几个问题,需要解决 1)uni-best框架下,$t功能函数无法实时的切换语言,可能跟使用有关 2)uni-best建议的translate方式在vue块外使用太繁琐,希望不用…

verilog中非阻塞多个if 优先级判断。

always(posedge clk)beginz < 0;if(sel0)z < a;if(sel1)z < b;if(sel2)z < c;if(sel3)z < d;end 比如上述代码&#xff0c;最后一级的优先级最高。

深入理解 JavaScript 三大作用域:全局作用域、函数作用域、块级作用域

一. 作用域 对于多数编程语言&#xff0c;最基本的功能就是能够存储变量当中的值、并且允许我们对这个变量的值进行访问和修改。那么有了变量之后&#xff0c;应该把它放在哪里、程序如何找到它们&#xff1f;是否需要提前约定好一套存储变量、访问变量的规则&#xff1f;答案…

Teams会议侧边栏应用开发-会议转写

Teams应用开发&#xff0c;主要是权限比较麻烦&#xff0c;大量阅读和实践&#xff0c;摸索了几周&#xff0c;才搞明白。现将经验总结如下&#xff1a; 一、目标&#xff1a;开发一个Teams会议的侧边栏应用&#xff0c;实现会议的实时转写。 二、前提&#xff1a; 1&#x…

株洲芦淞大桥事故的深刻反思

株洲芦淞大桥事故的深刻反思 2024年9月23日清晨&#xff0c;株洲芦淞大桥上发生了一起令人痛心的交通事故&#xff0c;一辆白色小汽车被出租车追尾后失控&#xff0c;冲向对向车道&#xff0c;最终酿成6人死亡、多人受伤的惨剧。 这起事故不仅给受害者家庭带来了无法弥补的伤…

【Python机器学习系列】开发Streamlit应用程序并部署机器学习模型(案例+源码)

这是我的第357篇原创文章。 一、引言 近年来&#xff0c;随着机器学习和人工智能技术的迅猛发展&#xff0c;越来越多的研究者选择将他们的模型以应用程序&#xff08;App&#xff09;的形式进行部署&#xff0c;从而使审稿人和其他研究者可以通过简单的界面&#xff0c;输入相…

9月23日

头文件 // My_string.h #ifndef MY_STRING_H #define MY_STRING_H#include <cstring> #include <algorithm>class My_string { private:char* data;size_t length;void resize(size_t new_length) {size_t new_capacity std::max(new_length 1, length);char* n…

一种求解城市场景下无人机三维路径规划的高维多目标优化算法,MATLAB代码

在城市环境下进行无人机三维路径规划时&#xff0c;需要考虑的因素包括高楼、障碍物、飞行安全和效率等。为了解决这些问题&#xff0c;研究者们提出了多种算法&#xff0c;包括基于智能优化算法的方法。 首先&#xff0c;无人机航迹规划问题的数学模型需要考虑无人机的基本约…

用Flowise+OneAPI+Ollama做一个在线翻译工作流

用FlowiseOneAPIOllama做一个在线翻译工作流&#xff0c;输入一种语言&#xff0c;马上翻译成另外一种语言&#xff0c;使用到的结点主要有&#xff0c;ChatLLM、提示词模板还有LLM Chain。 一、设置OneAPI和Ollama 1、Ollama的安装及配置&#xff0c;请参考&#xff1a;在ub…

三种委派 非约束委派 约束委派 基于资源的约束委派 概念

前言 简单记录下委派攻击的概念。具体的攻击演示/复现这里没有。 强烈建议反复通读《域渗透攻防指南》P242开始的4.5&#xff01;&#xff01;&#xff01; 以前看gitbook那个学的&#xff0c;yysy&#xff0c;真的不怎么适合零基础的看。 趁课上认真看了看4.5章&#xff0c…

如何快速免费搭建自己的Docker私有镜像源来解决Docker无法拉取镜像的问题(搭建私有镜像源解决群晖Docker获取注册表失败的问题)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Docker无法拉取镜像 📒📒 解决方案 📒🔖 方法一:免费快速搭建自己的Docker镜像源🎈 部署🎈 使用🔖 备用方案⚓️ 相关链接 🚓️📖 介绍 📖 在当前的网络环境下,Docker镜像的拉取问题屡见不鲜(各类Nas查询…

【编程基础知识】MySQL中什么叫做聚簇索引、非聚簇索引、回表、覆盖索引

一、引言 在数据库的奇妙世界里&#xff0c;索引是提升查询速度的超级英雄。就像图书馔的目录帮助我们快速找到书籍一样&#xff0c;MySQL中的索引加速了数据检索的过程。本文将带你深入了解MySQL中的聚簇索引、非聚簇索引、回表操作以及覆盖索引&#xff0c;探索它们如何影响…

机器人顶刊IEEE T-RO发布无人机动态环境高效表征成果:基于粒子的动态环境连续占有地图

摘要&#xff1a;本研究有效提高了动态环境中障碍物建模的精度和效率。NOKOV度量动作捕捉系统助力评估动态占用地图在速度估计方面的性能。 近日&#xff0c;上海交通大学、荷兰代尔夫特理工研究团队在机器人顶刊IEEE T-RO上发表题为Continuous Occupancy Mapping in Dynamic …

Keysight 下载信源 Visa 指令

用于传输原始的IQ数据 file.wiq 或者 file.bin wave_bin:bytes with open("./WaveForm.wfm","rb") as f:wave_bin f.read()log.info("File:WaveForm.wfm Size:%d Bytes"%len(wave_bin)) IMPL.sendCommand(":MEM:DATA \"WFM1:FILE1\&q…

每日OJ题_牛客_杨辉三角(动态规划)

目录 牛客_杨辉三角&#xff08;动态规划&#xff09; 解析代码 牛客_杨辉三角&#xff08;动态规划&#xff09; 杨辉三角_牛客题霸_牛客网 解析代码 最基础的 dp 模型&#xff0c;按照规律模拟出来杨辉三角即可。 #include <iostream> using namespace std;int dp…

企业上云不迷茫,香港电讯助力企业上云全攻略

在全球政策和市场双重驱动下&#xff0c;云计算产业正迎来前所未有的增长浪潮。据中国信通院《云计算白皮书&#xff08;2023年&#xff09;》1显示&#xff0c;2022年全球云计算市场规模已达到4,910亿美元&#xff0c;同比增长率高达百分之十九。而在中国市场&#xff0c;这一…

带线无人机现身俄罗斯抗干扰技术详解

带线无人机在俄罗斯的出现&#xff0c;特别是其光纤制导技术的应用&#xff0c;标志着无人机抗干扰技术的一大进步。以下是对俄罗斯带线无人机抗干扰技术的详细解析&#xff1a; 一、带线无人机抗干扰技术背景 技术突破&#xff1a;俄军成功研发了光纤制导无人机&#xff0c;…

数据链路层协议 —— 以太网协议

目录 1.数据链路层解决的问题 2.局域网通信方式 以太网 令牌环网 无线局域网 3.以太网协议 以太网帧格式 对比理解Mac地址和IP地址 认识MTU MTU对IP协议的影响 MTU对UDP的影响 MTU对TCP的影响 基于以太网协议的报文转发流程 交换机的工作原理 4.ARP协议 ARP协议…

springboot+vue高校两校区通勤校车预约系统的设计与实现

目录 用户功能管理员功能系统实现截图技术介绍核心代码部分展示使用说明详细视频演示源码获取 用户功能 登录注册&#xff1a;允许用户创建账户并登录系统。 首页&#xff1a;展示系统主要功能和通勤车相关的重要信息。 个人中心&#xff1a;用户可以查看和编辑自己的个人信息…

ios swift5 UITextView占位字符,记录限制字数

文章目录 截图代码&#xff1a;具体使用代码&#xff1a;CustomTextView 截图 代码&#xff1a;具体使用 scrollView.addSubview(contentTextView)contentTextView.placeholderLabel.text LocalizableManager.localValue("write_comment")contentTextView.maxCharac…