Android学习从入门到放弃(文末有福利)

news2024/9/24 3:25:49

移动开发早就不是最热门的程序员职业了,而且移动开发也并不是一个能够在短时间内轻松掌握的领域,需要我们有足够的耐心和毅力

作为一个在Android开发领域积累了不少经验的开发者,自己也看了不少书,也和不少前辈交流过,在这里分享一些对于学习Android开发的书籍、知识和方法,希望能对那些希望进入这个行业的人有所帮助。

首先,我要强调的是,移动开发早就不是最热门的程序员职业了,而且移动开发并不是一个能够在短时间内轻松掌握的领域。如果你只准备投入两三个月的时间,可能很难在这个行业中获得一席之地。因此,我建议那些真正想要成为优秀Android开发者的人需要有足够的耐心和毅力

下面提到的一些书籍可以通过 https://juejin.cn/post/7241922694274416696 下载

基础知识

这里主要是指开发语言、Android以及计算机基础 开发语言

  • Java:基础语法、面向对象思想、然后就是相关编程技巧如 泛型、并发等
  1. 《Java核心编程》、《Think in Java》、《编写高质量代码:改善Java程序的151个建议》、《重构_改善既有代码的设计》
  • kotlin:对应上面java,并且有着自己的新特性,包括 函数式编程、协程等
  1. 《Kotlin核心编程》
  2. 官网 https://www.kotlincn.net
  3. 《函数式编程思维》
  • Android系统基础:基础主要是四大组件、画UI、View等
  1. 官网是最好的资料https://developer.android.com/?hl=zh-cn
  2. 入门资料《第一行代码》、《Android艺术探索》
  • 计算基础

网络和操作系统

  1. 《图解 TCP_IP》
  2. 《现代操作系统》

工程能力

这部分需要多年的实践积累

  • 设计模式

首先需要有些设计模式的基础,这会让我们更加容易的理清项目代码的脉络,写出更加容易维护的代码

  1. 《Head First 设计模式》
  2. 《图解设计模式》
  3. 《代码整洁之道》
  • 组件化

这个前几年比较多,配合路由框架,以及SPI来解耦模块

  • 工程构建

主要是Android gradle的高级玩法,这块非常值得深挖,这块资料不是很多,都是网上一些碎片

  1. 《Android-Gradle权威指南》
  2. 《实战Gradle》
  3. 《Gradle for Android》
  • 「工程安全」

逆向与安全,这个是个全新的领域了,搞应用的稍微了解一下就可以,因为这块深不见底的,可以了解下xposed、脱壳、反编译

  1. 《Android安全攻防权威指南》
  2. 《Android安全技术揭秘与防范》
  • 大前端技术

早些年的jsBridge/Hybrid,现在的Flutter等,然后各家都在搞自己的跨端方案比如字节的Lynex等

  • 稳定性

这个几乎都要遇到,主要是卡顿、包大小、crash(java层以及native层)、电量、流量这些优化

  • 「音视频、多媒体技术」

这个也是个单独的深耕领域,需要配合了解c/c++、OpenGL等

  • 编程技巧
  1. 反射与注解 + APT(AMS/JavaAssit/Javapoet)
  2. AOP切面
  3. 动态代理
  4. 并发编程

Android系统

  • 「Framework」

这个是个专业的领域,但是应用层又经常需要了解,主要在渲染系统,Binder、一些常见的核心服务端,比如AMS、WMS等。不过应用层的插件化这块还是需要了解一些framework知识,这样会帮助我们更加深刻的理解

  1. 《深入理解Android内核设计思想上册》、《深入理解Android内核设计思想下册》
  2. 《Android的设计与实现 卷1》
  3. 《Android内核剖析(带完整书签)》
  4. 《Android Framework 开发揭秘》
  5. 《深入探索android热修复原理》
  • Runtime
  1. 《Java虚拟机》

最后附上一张大图 Android 从入门到进阶水印.png

欢迎关注 「Android茶话会」更多精彩等你来探索

  1. 「学习之路」 取Android技术路线经典电子书
  2. 「童年游戏」 取60+童年游戏合集一份
  3. 「技术简历」 取精选简历模板一份

Android 从入门到进阶水印.png

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

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

相关文章

98 # jwt

什么是 jwt JSON WEB TOKEN (jwt) 是目前最流行的跨域身份验证解决方案。 解决问题:session 不支持分布式框架,无法支持横向扩展,只能通过数据库来保存会话数据实现共享,如果持久层失效就会出现认证失败。 优点:服务…

强化学习问题(二)--- ERROR: Failed building wheel for box2d-py

错误:Could not build wheels for box2d-py, which is required to install pyproject.toml-based projects pyproject.toml-based projects:意思是缺少依赖包,对于box2d就是缺少swig 注意:安装python对应的swig版本 解决1&…

2023 NewStarCTF --- wp

文章目录 前言Week1MiscCyberChefs Secret机密图片流量!鲨鱼!压缩包们空白格隐秘的眼睛 Web泄露的秘密Begin of UploadErrorFlaskBegin of HTTPBegin of PHPR!C!E!EasyLogin CryptobrainfuckCaesars SecertfenceVigenrebabyrsaSmall dbabyxorbabyencodin…

CART 算法——决策树

目录 1.CART的生成: (1)回归树的生成 (2)分类树的生成 ①基尼指数 ②算法步骤 2.CART剪枝: (1)损失函数 (2)算法步骤: CART是英文“class…

【Java 进阶篇】创建 HTML 注册页面

在这篇博客中,我们将介绍如何创建一个简单的 HTML 注册页面。HTML(Hypertext Markup Language)是一种标记语言,用于构建网页的结构和内容。创建一个注册页面是网页开发的常见任务之一,它允许用户提供个人信息并注册成为…

Logo制作方法大公开:初学者也能学会的Logo设计教程

Logo是品牌或企业的象征,一个好的Logo可以提升品牌的认知度和美誉度。但是,很多人在设计自己的Logo时都会遇到一些困难。今天,我们将为你揭示Logo制作的技巧和秘密,让你轻松设计出专业水准的Logo。 首先,你需要注册并登…

FPGA project : sobel

实验目标: sobel算法,处理100X100灰度图像:野火logo 边缘检测: 边缘检测,针对的是灰度图像,顾名思义,检测图像的边缘,是针对图像像素点的一种计算,目的是标识数字图像…

VM虚拟机扩容

背景介绍 在实现3D结构光扫描算法移植到嵌入式平台jetson Xavier NX时,需要在windows的电脑上安装VM虚拟机搭载Ubuntu,然后在Ubuntu 18.04上安装开发软件Nsight Eclipse Edition,在该集成开发软件上交叉编译jetson aarc64架构上可运行的文件…

SAE-J1939-21 (超8字节)多包数据----CAN传输协议

一、协议数据单元(PDU) 1. 优先级(P) 消息优先级可从最高 0(000)设置到最低 7(111)。 2. 保留位(R) 保留此位以备今后开发使用。 3. 数据页(D…

中国移动咪咕、阿里云、华为“秀肌肉”,这届亚运会的“高光”不止比赛

文 | 智能相对论 作者 | 青月 竞技体育的发展,其实也可以看作是一部“技术进化史”。 在1924年的巴黎,广播首次进入奥运会,人们第一次可以通过报纸以外的方式了解奥运会。 1928年,在荷兰申办的阿姆斯特丹奥运会,高…

mi note3 刷入lineageos

下载 twrp TWRP是国外安卓爱好者开发的一款工具,全名为Team Win Recovery Project,主要作用包括刷机、备份 ,救砖。 https://twrp.me/xiaomi/xiaomiminote3.html 一般下载最新版本,mi note 3对应 https://dl.twrp.me/jason/twrp-…

Hadoop----Azkaban的使用与一些报错问题的解决

1.因为官方只放出源码,并没有放出其tar包,所以需要我们自己编译,通过查阅资料我们可以使用gradlew对其进行编译,还是比较简单,然后将里面需要用到的服务文件夹进行拷贝,完善其文件夹结构,通常会…

Android笔记(二):JetPack Compose定义移动界面概述

一、JetPack Compose组件概述 JetPack Compose是Google公司在2021年正式推出的声明式UI工具包。Compose库用于开发原生Android应用界面。它取代传统XML文件配置界面,不需要界面编辑工具,而是采用强大Kotlin API以及函数搭建移动应用界面,代码…

请求的转发和重定向

RequestDispatcher接口实现转发: jsp1上链接到Servlet,Servlet再转发(关键在这里怎么实现转发??) 演示index.html页面---->Servlet1(转发到)------>Servlet2 实现转发流程 1.用HttpServletReques…

如何使用CDN加载静态资源

文章目录 前言工具场景七牛云创建空间存储 控制台查看后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:前端 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误…

《机器学习》- 第3章 线性模型

文章目录 3.1 基本形式3.2 线性回归一元线性回归多元线性回归 3.3 对数几率回归3.4 线性判别分析3.5 多分类学习3.6 类别不平衡问题 3.1 基本形式 问题描述: 函数形式: 向量形式: 许多功能更为强大的非线性模型可在线性模型的基础上引入层…

Java项目如何防止SQL注入的四种方案

什么是SQL注入 SQL注入(SQL Injection)是一种常见的网络安全漏洞,它允许攻击者通过操纵应用程序的输入来执行恶意的SQL查询。这种漏洞发生在应用程序没有正确验证、过滤或转义用户提供的输入数据时。攻击者可以利用这个漏洞来执行未经授权的…

笔记本怎么录制屏幕?推荐3个实用技巧

在当今信息化快速发展的时代,笔记本录制屏幕成为人们日常生活中经常需要面对的问题。无论是办公、学习还是娱乐,录制屏幕都有着广泛的应用。可是笔记本怎么录制屏幕呢?接下来,本文将介绍3种常见的笔记本录制屏幕方法,我…

Python:Jupyter:OSError: Initializing from file failed

在学习Python的时候,我在进行导入外部文件的时候总是出现问题,总是乱导文件,可能碰巧文件导进去了,这次记录一下导入.csv文件失败的原因 read_csv时发生报错:OSError: Initializing from file failed filepathr"…

zabbix自定义监控内容和自动发现

6 目录 一、自定义监控内容: 1.明确需要执行的 linux 命令 2.创建 zabbix 的监控项配置文件,用于自定义 key: 3. 在 Web 页面创建自定义监控项模板: 3.1 创建模板: 3.2 创建监控项: 3.3 创建触发器&#…