学不会 Android Framework,是不是基础不牢固?

工欲善其事,必先利其器。只有打好了基础,才能自如地应对 Android Framework 的学习,这些基础知识主要包括了:

  • 熟悉 Linux 的基本使用
  • 熟悉 Linux Shell,了解 Python Go
  • 熟悉 C 和 C++
  • 熟悉 Java
  • 熟悉 Make Soong Bazel CMake 软件构建工具
  • 熟悉 Linux 系统编程
  • 了解 Linux kernel 和操作系统基础

接下来会推荐一些学习资料,我也会系统地分享基础方面的学习,并将其作为学习 Android Framework 的前置教程,同学们可以根据自己的情况按需学习。

Linux 的使用

Android Framework 在 Ubuntu 下开发,所以第一步得会用 Linux,主要是掌握常用的命令,以及一些常见的操作。

计划分享文章:

  • Ubuntu 使用快速入门

Shell Python Go 工具类编程语言

Android Framework 中有很多 shell 脚本,主要是和编译有关的,要读懂这些脚本,需要有比较好的 Linux shell 脚本编程能力,推荐学习《Linux Shell核心编程指南》

计划分享文章:

  • Linux Shell 编程入门
  • Linux Shell 编程进阶

Android 的编译系统还用到了 Go 语言,所以我们得对 Go 的使用有基本的了解

计划分享文章:

  • Go 语言入门
  • Go 语言进阶

Repo 是一个 Python 脚本,对 git 的使用进行了封装,所以 Python 的使用我们也需要有基本的了解。

计划分享文章:

  • Python 语言入门
  • Python 语言进阶

以上内容 Linux Shell 需要熟练掌握,Go 和 Python 了解即可

C 和 C++

C/C++ 这个不用说,native 层基本都是 C/C++ 代码,这部分必须熟练掌握,推荐几本我觉得还不错的书:

计划分享文章:

  • C 语言语法入门1
  • C 语言语法入门2
  • C 语言与指针
  • C 语言面向对象编程
  • C 语言模块化编程
  • GUN C 扩展语法
  • ARM 汇编基础
  • C 程序的编译、链接、安装和运行
  • C++ 语法入门1
  • C++ 语法入门2
  • C++ 语法入门3
  • C++ STL 入门
  • C++ 多线程编程

Java

Java 我就不献丑了,同学们应该已经非常熟悉了!

JNI

Framework 中,使用了大量的 JNI 技术,但是我没有找到系统讲解 JNI 的书籍,后面我会在基础部分写一个系列教程来讲解 JNI 的使用和使用过程中需要注意的事情。

计划分享文章:

  • JNI 编程核心基础
  • JNI 中处理 Java 异常
  • C/C++ 子线程调用 Java 方法
  • JNI 调用优化

Make Soong Bazel 软件构建工具

Make Soong 是现在 Android 源码中混合使用的构建工具,需要熟悉。

Bazel 是未来 Android 将使用的构建工具,空闲的时候可以着手了解了。

计划分享文章:

  • Makefile 基础入门
  • Soong 与 AOSP 编译系统
  • Bazel 基础入门
  • Bazel 与 AOSP 编译系统

Linux 系统编程

Android 构建于 Linux 之上,对于 Linux 系统编程需要非常熟悉。

计划分享文章:

  • 文件系统与文件IO
  • 内存映射
  • 进程管理
  • 进程间通信
  • Linux 多线程编程

Linux kernel 和操作系统基础

这部分主要分享下面的内容:

  • Linux 内核开发环境搭建
  • Linux 内核模块
  • 操作系统接口
  • 进程管理,进程调度与死锁
  • Linux 内存管理
  • 设备管理
  • 文件系统

总结

要学得东西很多,慢慢来,总会学完的。

同学们可以根据自己的情况按需学习。

目前还是以分享 Android Framework 内容为主,基础部分会陆续分享出来。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开发 Android Framework 需要掌握以下基础: 1. Java 编程语言:Android 应用程序是使用 Java 编程语言编写的,因此需要具备扎实的 Java 编程基础。 2. Android 应用程序开发:熟悉 Android 应用程序开发,了解 Android 应用程序的架构、组件和生命周期等。 3. Android 系统原理:了解 Android 系统原理,包括进程、线程、内存管理、文件系统、网络连接等。 4. Linux 操作系统:Android 系统基于 Linux 内核,因此需要了解 Linux 操作系统的基础知识。 5. C/C++ 编程语言:Android Framework 是使用 C/C++ 编写的,因此需要对 C/C++ 编程语言有一定的掌握。 需要习的内容包括: 1. Android Framework 的架构和组件:了解 Android Framework 的架构和各个组件的作用,掌握 Android Framework 的整体结构。 2. Android 应用程序开发:熟悉 Android 应用程序开发,包括 Activity、Service、BroadcastReceiver、ContentProvider 等组件的使用。 3. Android 系统原理:了解 Android 系统的运行机制和相关原理,包括进程、线程、内存管理、文件系统、网络连接等。 4. Linux 操作系统:了解 Linux 操作系统的基础知识,包括 Linux 文件系统、进程管理、内存管理等。 5. C/C++ 编程语言:掌握 C/C++ 编程语言的基础知识,包括指针、数据结构、内存管理等。 此外,还需要了解 Android Framework 的开发工具和相关技术,例如 Android Studio、Gradle、NDK 等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值