Android开发学习路线图

摘要:
接下来,这个博客不打算继续学习Android开发的细节。首先,停下来澄清下一步的学习目标和学习路线。在Android开发中,我们主要通过样式、纹理等方式美化界面。目标是掌握Android应用程序开发部分。

通过前面的3篇博客已经简单的介绍了Android开发的过程并写了一个简单的demo,了解了Android开发的环境以及一些背景知识。

接下来这篇博客不打算继续学习Android开发的细节,先停一下,明确一下接下来的学习目标以及学习路线。

一、对Android开发的基本认识

1、Android原生开发是基于Java语言的,由于我比较擅长C#,所以对Java语言本身不太熟练,需要加强Java语言基础的练习,这一块我会穿插到具体的知识点练习当中,并且在必要的地方给出与C#语言的对比(其实基本上在语法层面是差不多的,只是需要整理一下)。

2、Android本质上来讲只是一个客户端,所以是基于C/S模式的开发(B/S本质上也是C/S,不过是一种特殊的C/S,浏览器充当了客户端的角色),要想与服务器端通信需要通过http、tcp/ip等协议进行。所以我们可以通过http get或者post动作请求服务端来获取数据,还可以使用socket(tcp/udp)获取数据,也有通用的WebService,但这些都需要服务端程序的支持。虽然我也做过Java Web开发,知道java中有servlet(对应于ASP.NET中的一般处理程序ashx)可以作为服务端程序,但是毕竟我现在使用的第一编程语言是C#,所以我会使用C#当中专门的网络通信应用框架WCF或者轻量级的Web API作为服务端支持(唯一的缺陷是只能在windows平台运行,不过以后有可能会实现所谓的跨平台)。

3、Android的开发也会用到数据库,不是Oracle、SQL Server、MySQL,这些都需要在服务器安装;Access是微软提供的文件型数据库,不支持Android(说不定以后支持呢)。也许有人会说可以用properties、xml等文件来存储数据呢?当然可以但是毕竟是文件,不是数据库,不具备基本的数据库管理功能,所以我们需要一个文件型数据库,并且支持Android系统,Sqlite是当前流行的文件型数据库。

4、现在的程序对UI部分的要求越来越高。用户对一个应用程序的评价好不好,除了可用性之外,主要就看你的UI好不好看,使用是不是很人性化。用户可不懂什么背后的技术,他看到的就是界面。在Android开发中主要通过样式、贴图等手段美化界面。

二、Android架构

Android开发学习路线图第1张

从底层到高层,按照顺序分别为:

1、Linux内核层

Android本质是Linux操作系统,Linux内核提供了内存管理、进程管理、网络协议等基本功能

2、系统运行库层

包括系统库以及Android运行时两个部分。比如系统库中的Surface Manager负责管理显示、Media Framework负责多媒体功能、SQLite是一个小型的RDBMS等等。而比较重要的是Android运行时部分,包括核心库和Dalvik虚拟机(google为了防止版权问题,而没有使用oracle的jvm,而是自行设计了一套java虚拟机)。

3、应用程序框架层

提供了一组现成的组件,帮助程序员简化开发

4、应用程序层

就是已经存在于Android系统内的应用程序

由上我们知道,我们大多数时候都是基于应用程序框架层以及系统运行库层进行开发。

三、Android开发的基本步骤

抛开需求分析、架构设计等等这些软件开发通用的过程不谈,将范围缩小到Android开发本身,需要这么几个步骤:

1、建立layout布局文件,有多少个界面画多少个,然后通过样式和贴图设计、美化各个界面

2、建立Acitivity文件,在OnCreate方法中加载相应的布局文件。实现程序的代码编写部分

3、在AndroidManifest.xml清单文件中注册Activity,添加程序运行所需要的各种权限

4、打包发布apk,自行安装(现在流行的扫描二维码,得到下载地址然后安装)

总结一下:接下来的Android学习我将会侧重于Android客户端程序部分,在服务器端我会使用已经掌握的.NET技术实现(比如WCF、Web API等)。如果学习过程中涉及到操作系统底层的知识,会适当的了解一下。目标就是熟练掌握Android应用开发部分。

免责声明:文章转载自《Android开发学习路线图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(zxing.net)二维码Data Matrix的简介、实现与解码资深技术专家崮德在阿里管理研发团队的实践和思考下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【SequoiaDB】5 巨杉数据库SequoiaDB基本操作

Sequoia DB巨杉数据库作为分布式数据库,由数据库存储引擎与数据库实例两大模块组成。前面介绍了Sequoia DB巨杉数据库集群的部署以及MySQL实例的安装,下面将继续就以下主题进行介绍。 1 安装目录详解 1.1 SequoiaDB安装目录 SequoiaDB巨杉数据库的默认安装目录为/opt/sequoiadb/,安装完成后可以看到目录如下:...

android 原生应用、Web应用、混合应用优缺点分析

近期开发几个项目,牵涉到android的几种开发模式。对于原生态开发、web 应用开发以及混合模式开发,本人觉得并非哪一种就是最好的,哪一种就是最差的,这个全然是依据项目的实际需求,选择一种合适的开发模式。他们同一时候具备自己的长处,同一时候也有自身的缺点,我们依据实际情况,取当中的长处,尽量避免掉缺点,才是最好的开发模式。以下,我们就一同看看,这三种开...

Entity Framework Core 使用HiLo生成主键

HiLo是在NHibernate中生成主键的一种方式,不过现在我们可以在Entity Framework Core中使用。所以在这篇内容中,我将向您在介绍如何在Entity Framework Core中使用HiLo生成主键。 什么是Hilo? HiLo是High Low的简写,翻译成中文叫高低位模式。 HiLo是由“Hi”和“Lo”两部分生成主键的一种模...

Android在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom。

根据业务的需要,要在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom属性。 我们知道在xml中设置的方法为:android:drawableLeft="@drawable/xxxxx"; 但是在代码中并没有相关的setDrawableLeft等方法。怎么办呢?别担心,api为我们提供...

redis实现二级缓存

缓存的作用就是降低数据库的使用率,来减轻数据库的负担。我们平常的操作一般都是查>改,所以数据库的有些查操作是重复的,如果一直使用数据库就会有负担。Mybatis也会做缓存,也会有一级缓存和二级缓存: 一级缓存:是SqlSession级别的缓存,使用HashMap数据结构来用于存储缓存数据的 二级缓存:是mapper级别的缓存,其作用域是mappe...

PyQt5操作SQLite数据库

1、操作SQLite数据库import sysfrom PyQt5.QtSql import QSqlDatabase,QSqlQueryfrom PyQt5.QtCore import *def creatDB(): db=QSqlDatabase.addDatabase("QSQLITE")#指定SQLite数据库的文件名 db.setDa...