通过前面的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架构


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

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开发系列之学习路线图的更多相关文章

  1. Android 开发系列教程之(一)Android基础知识

    什么是Android Android一词最早是出现在法国作家维里耶德利尔·亚当1986年发表的<未来夏娃>这部科幻小说中,作者利尔·亚当将外表像人类的机器起名为Android,这就是And ...

  2. Android开发系列----学习伊始

    因为对移动端开发开始感兴趣,开始学习App开发,没有苹果环境的我,只好先选择Android来玩一玩了~~ 找了一套视频,买了几本java.android开发的书,开始搞起~~

  3. Android开发系列之Android项目的目录结构

    今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目 ...

  4. Android开发系列之搭建开发环境

    接触Android好久了,记得09年刚在中国大陆有点苗头的时候,我就知道了google有个Android,它是智能机操作系统.后来在Android出1.5版本之后,我第一时间下载了eclipse开发工 ...

  5. Android开发系列之adb常用命令

    对于Android开发者来说,如果没有adb的帮助,那肯定就跟少了一只手那样别扭.其实笔者在刚刚学习Android开发的时候,也没有意识到adb的重要性.想想只要用IDE画出界面,然后实现后台的逻辑代 ...

  6. [Android开发系列]IT博客应用

    1.关于坑 好吧,在此之前先来说一下,之前开的坑,恩,确实是坑,前面开的两个android开发教程的坑,对不起,实在是没什么动力了,不过源码都有的,大家可以参照github这个应用 https://g ...

  7. Android开发系列之按钮事件的4种写法

    经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity ...

  8. Android开发系列之SQLite

    上篇博客提到过SQLite,它是嵌入式数据库,由于其轻巧但功能强大,被广泛的用于嵌入式设备当中.后来在智能手机.平板流行之后,它作为文件型数据库,几乎成为了智能设备单机数据库的必选,可以随着安卓app ...

  9. VS2015下的Android开发系列01——开发环境配置及注意事项

    概述 VS自2015把Xamarin集成进去后搞Android开发就爽了,不过这安装VS2015完成的时候却是长了不知道多少.废话少说进正题,VS2015安装时注意把Android相关的组件勾选安装, ...

随机推荐

  1. Android中Service通信(一)——启动Service并传递数据

    启动Service并传递数据的小实例(通过外界与服务进行通信): 1.activity_main.xml: <EditText android:layout_width="match_ ...

  2. Shell Script (2) - global.sh

    cd web/ui npm run e2e-dev -- -i 1 "should be able to add function with argument to a ingredient ...

  3. 整站网页doc下载wget (转)

    -x -np -p -m -k -t -X/upload/ http://网址 为了让这个命令行的各选项意义更加明确,它还可以写成: --force-directories --no-parent - ...

  4. C# Java间进行RSA加密解密交互

    原文:C# Java间进行RSA加密解密交互 这里,讲一下RSA算法加解密在C#和Java之间交互的问题,这两天纠结了很久,也看了很多其他人写的文章,颇受裨益,但没能解决我的实际问题,终于,还是被我捣 ...

  5. mysql升级小结和mysql_upgrade的用途

    http://blog.itpub.net/15480802/viewspace-1412259/ mysql升级 1 升级方式 分为In-place和out-of-place,前者直接覆盖当前版本, ...

  6. PHP算法 《图》 之 理论基础

    转载自:http://www.cnblogs.com/skywang12345/p/3691463.html Ⅰ 图的基本概念 1. 图的定义 定义:图(graph)是由一些点(vertex)和这些点 ...

  7. 50个常用的Linux命令(二)sed

    [root@localhost cee]# echo this thisthisthis |sed 's/this/THIS/g'THIS THISTHISTHIS[root@localhost ce ...

  8. secondPage

    写的第二个页面,参照着别人的代码,网上找寻自己需要的标签,每个小地方都得试许多次才能明白标签的正确使用方法,自己动手写出来一个页面虽然超级粗糙,但是挺有收获的. <!DOCTYPE html&g ...

  9. C# 语法特性 - 匿名方法(C#2.0)

    概述 匿名方法的本质其实就是委托. 编译后会生成委托对象,生成方法,然后把方法装入委托对象,最后赋值给声明的委托变量. (匿名方法可以省略参数:编译的时候会自动为这个方法按照委托签名的参数添加参数) ...

  10. Vue methods和computed

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...