Android菜鸟如何学习Android系统开发?

如何做好Android学习前的准备?

  如果你已经确定了学习Android的目标,那么,应该提前做好哪些工作、先打下哪些基础呢?

  

Android菜鸟如何学习Android系统开发?

 

  首先,你最好先熟悉一门编程语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了,建议先从将其好好复习一下,将其基本的语法再好好回顾一下,最好能搭建一个环境来运行、调试它。如果没有学过,不妨也提前学习一下,可以参考清华大学出版社出版的谭浩强老师的《C语言程序设计》,推荐这本书的原因,一是它已经经过了多年的考验,应该说还是比较严谨的;其次就是大部分的高校所开设的C语言使用的教材都是用它作为教材,因此无论是购买还是借阅,都容易找到。另外,华清远见网站上也有一些这方面的教学视频,可以结合来看。

  其次,如果你后续有志于游戏方面的开发,你最好具备一定的数据结构和算法基础知识。虽然现代的高级编程语言中,其类库中已经帮我们实现了大部分的数据结构,一般情况下,我们直接使用即可。但如果你能对其原理有所了解,当你需要在这些数据结构和算法中间的时候,你可以能更加的清楚到底应该选择那个数据结构或者算法。另外,在图形图像处理上面,线性代数的作用也非常重要,如果能掌握一点这方面的基础知识,无疑也会在后续的学习中如虎添翼。举个例子,在Android中,有一个用于图形变换的类Matrix,用起来稍有点难。其实它的理论基础就是线性代数中的矩阵,如果你了解矩阵的基本算法,这个类的使用可以说就易如反掌了。

  第三,因为Android应用的开发语言用的是Java语言,并且在Android中也用到了Java核心类库的大量的类,因此,在学习Android开发之前,可以先把Java基本语法和Java SE的基础类库好好学习一下,例如:Java中的IO、网络、线程、List、Map、Tree等数据结构。现在的大学里也有不少的院系开设了Java课程,教材和图书也非常丰富,如果你所在的院系没有开设,也可以从其他开设了这个专业的院系同学那里借阅一下,并认真完成他们所布置的作业,争取自己能动手编写出一些简单的Java应用。如果自己购买图书,可以购买《Java核心技术,卷1(原书第8版)》这本图书来学习。

  第四,因为在Android中,会用到数据库来存储数据,因此,也可以提前对数据库知识做相关的储备。在Android所使用的SQLite中,其语法是遵循标准的SQL-92语法的(当然和企业级数据库如Oracle等比较,功能上要弱很多),有条件的话,最好也能安装一个数据库来进行实际的操作。从易用性和资料完备性来说,建议大家使用Microsoft SQL Server或者MySQL就可以了。它们都是我们学习数据库的好平台。另外,如果曾经学习过数据库原理或者关系代数,那么,在学习数据库的过程中,也可以再好好地复习一下这些基础知识,对我们理解数据库大有裨益。

Android开发学习方法

  最后,我们结合"3G Android系统开发"来谈谈Android开发的学习方法。

  Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大。因此,一个好的学习方法对我们学习Android开发很重要。因此应采取了循序渐进、将大目标分解成多个小目标,逐步达成对Android开发从应用层到底层系统及驱动开发全面掌握的目的。

  例如,可以先从Android的应用开发开始,等到对应用掌握的比较熟悉了,开始慢慢阅读一些Android 应用框架层的源代码,然后再渐渐往下去了解Android的JNI、Libraries、Dalvik虚拟机、HAL层、硬件驱动、Linux内核、ARM技术体系架构等,虽然近期Intel宣称要让Intel芯片支持Android系统,但在可预见的时期内,在移动设备上,ARM的优势应该还是不可撼动的。

  具体来说,可以先通过在开发板上构建一个自己的Android系统,了解Android系统的整体架构和启动过程,由此先对Android有一个初步的了解;接下来,学习Android的应用开发,在这里可以先学习Android的几个主要组件、UI组件,先对Android应用开发有一个感性认识。在能够熟练搭建用户界面后,再逐渐来丰富应用的功能,例如:加上事件处理,使其能够和用户互动;加上数据存储功能;加上联网功能等等。在学完应用后,在此基础上来学习游戏编程,先了解游戏设计的基本思路,然后开始从小的游戏、小的模块开始做起,到最后能完成一个类似于现在热门的《捕鱼达人》这样的游戏。在掌握了这些应用层级的内容后,可以去了解如何在Android应用中通过JNI去调用C/C++的接口,再往下学习Linux的内核和驱动开发如字符设备驱动、Flash设备驱动、网络设备驱动等等;再在此基础上,去学习Android驱动开发、HAL(硬件抽象层)开发、ARM体系架构和指令等等内容,这样,Android开发的整个体系就都贯穿起来了。

  当然,因为时间有限,而底层部分的内容比较庞杂,因此,在真正去做这部分工作之前,我们只需要对其基本原理有所了解,做好相关知识的储备,能够根据老师的指导来完成相关的实验。这样在后续的工作中,就可以方便的往这方面发展,让自己的事业更上一层楼。

转载于:https://www.cnblogs.com/fengzhuangsheng/p/3835652.html

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

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

相关文章

关于Django中JsonResponse返回中文字典编码错误的解决方案

遇到这样一个问题,返回的json不是中文 def get_json(request):return JsonResponse({"res": "成功"}) 结果: {"res": "\u6210\u529f"} 解决方案:JsonResponse(data, json_dumps_params{ensure_a…

LeetCode 668. 乘法表中第k小的数(二分查找)

文章目录1. 题目2. 解题1. 题目 几乎每一个人都用 乘法表。但是你能在乘法表中快速找到第k小的数字吗? 给定高度m 、宽度n 的一张 m * n的乘法表,以及正整数k,你需要返回表中第k 小的数字。 例 1: 输入: m 3, n 3, k 5 输出…

获取类类型

//获得类类型的两种方式 1、 Class cls1 Role.class; 2、 Class cls2 Class.forName("yui.Role"); 注意第二种方式中,forName中的参数一定是完整的类名(包名类名),并且这个方法需要捕获异常。 现在得到cl…

VUE:解决判断网页端与手机端情况下,横竖屏无法判断的问题

一、需求: 第一步:判断是网页端还是手机端 第二步:判断手机端,手机是横屏显示还是竖屏显示 二、解决方法: 监听网页端还是手机端 监听显示页面宽高变化 三、代码如下: methods: {_isMobile() {let f…

天池 在线编程 寻找比周围都大的点(模拟)

文章目录1. 题目2. 解题1. 题目 https://tianchi.aliyun.com/oj/245679029019779851/254275128279634587 给一个n*m大小的矩阵,寻找矩阵中所有比邻居(上下左右,对角也算,不考虑边界就是8个咯)都严格大的点。 返回一个…

前端笔试题总结---持续更新

写在前面:。。。。 1字符串逆序 function reverse(str){return str.split("").reverse().join("");//直接用函数var str1"";//从后向前输出for(var istr.length-1;i>0;i--){str1str[i];}return str1;var lenstr.length;//字符串原…

[原创][R语言]股票分析实战[4]:周级别涨幅趋势的相关性

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

前端:实现手机左右滑动效果

需求&#xff1a;手机可以左右滑动&#xff0c;显示商品或者div信息 原理&#xff1a;建立两个盒子&#xff0c;一个是可以看到的手机屏幕盒子&#xff0c;一个是自己设定好的盒子&#xff0c;左右滑动&#xff0c;只显示与手机屏幕盒子交集的部分 代码&#xff1a; <div …

天池 在线编程 双向取数(博弈DP)

文章目录1. 题目2. 解题1. 题目 https://tianchi.aliyun.com/oj/245679029019779851/254275128279634585 有一个长度为n的数列arr&#xff0c; 甲乙两个人每次可以从头或者从末尾取一个数&#xff0c;双方都想让自己取数之和尽量多&#xff0c; 甲先取数&#xff0c;问甲乙在…

利用索引数组排序 不改变原数组值的位置

1.定义一个和要排序数组a[10]长度一样的数组, 这里定义为10&#xff0c;index[10] {0&#xff0c; 1&#xff0c; 2&#xff0c; 3&#xff0c; 4&#xff0c; 5&#xff0c; 6&#xff0c; 7&#xff0c; 8&#xff0c; 9}&#xff0c;值为10个下标。 2. 用冒泡排序&#xff…

前端demo:实现背景半透明,div与文本正常显示

一、需求&#xff1a; 背景实现透明度0.3&#xff0c;其他组件正常显示 二、代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

天池 在线编程 布尔表达式求值(栈)

文章目录1. 题目2. 解题1. 题目 https://tianchi.aliyun.com/oj/245679029019779851/254275128279634588 给定一个字符串代表一个仅包含"true","false","or","and"的布尔表达式。 你的任务是将这个表达式的值求出&#xff0c;返回&q…

Schema详解

XML Schema 简介XSD 为何使用XML Schema 是基于 XML 的 DTD 替代者。XML Schema 可描述 XML 文档的结构。XML Schema 语言也可作为 XSD&#xff08;XML Schema Definition&#xff09;来引用。在继续学习之前&#xff0c;您需要对下面的知识有基本的了解&#xff1a;HTML / XHT…

整理总结一下:git恢复本地误删除的分支

一、使用git log -g查看日志&#xff0c;找回之前提交的commit,并记下commit_id git log -g 二、新建分支newbranch&#xff0c;把commit_id分支复制到新的分支上 git branch newbranch commit_id 三、切换新建分支newbranch&#xff0c;检查文件 git checkout newbran…

LeetCode 1074. 元素和为目标值的子矩阵数量(2d前缀和+哈希)

文章目录1. 题目2. 解题1. 题目 给出矩阵 matrix 和目标值 target&#xff0c;返回元素总和等于目标值的非空子矩阵的数量。 子矩阵 x1, y1, x2, y2 是满足 x1 < x < x2 且 y1 < y < y2 的所有单元 matrix[x][y] 的集合。 如果 (x1, y1, x2, y2) 和 (x1, y1, x2…

判断平台是windows还是linux,用这个方法就行了

一、需求&#xff1a; 因为代码是在windows上写的&#xff0c;但是需要部署到linux上&#xff0c;所以有些文件路径是不一样的&#xff0c;那么该怎么解决呢 二、解决方法&#xff1a; python是跨平台的。在Windows上&#xff0c;文件的路径分隔符是\&#xff0c;在Linux上是…

最炫国漫《雾山五行》用 Python 了解一下到底有多优秀

看动漫的小伙伴应该知道最近出了一部神漫《雾山五行》&#xff1a; 1、极具特色的水墨画风和超燃的打斗场面广受好评 2、首集播出不到 24 小时登顶 B 站热搜第一&#xff0c;豆瓣开分 9.5&#xff0c; 火爆程度可见一斑&#xff0c;就打斗场面而言&#xff0c;说是最炫动漫也…

LeetCode 982. 按位与为零的三元组(位运算+计数)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 A&#xff0c;找出索引为 (i, j, k) 的三元组&#xff0c;使得&#xff1a; 0 < i < A.length 0 < j < A.length 0 < k < A.length A[i] & A[j] & A[k] 0&#xff0c;其中 & 表示按位与&…

Windows下免费软件的首选推荐

PS&#xff1a;以下按装机顺序排列&#xff0c;“|”号后面是备选软件。 启动引导&#xff1a;EasyBCD 虚拟机&#xff1a;VirtualBox Linux&#xff1a;Zorin | Linux Mint(Mate) | Ubuntu 驱动工具&#xff1a;驱动精灵 | 鲁大师 虚拟光驱&#xff1a;DAEMON Tools Lite 系统…

雷军一往无前的十年(小米十周年公开演讲)附赠《一往无前》电子书籍

▲雷军 | 中国企业家俱乐部理事、小米科技董事长 做全球最好的手机&#xff0c;只卖一半的价钱&#xff0c;让每个人都能买得起——如何能够实现这个看上去、听上去都不靠谱的目标&#xff1f; 来源 | 雷军公众号分享 | 雷军 2020年8月11日19:30&#xff0c;小米十周年&#x…