zoukankan      html  css  js  c++  java
  • Android开发系列之学习路线图

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

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

    一、对Android开发的基本认识

    1、Android原生开发是基于Java语言的。因为我比較擅长C#,所以对Java语言本身不太熟练,须要加强Java语言基础的练习,这一块我会穿插到详细的知识点练习其中。而且在必要的地方给出与C#语言的对照(事实上基本上在语法层面是差点儿相同的,仅仅是须要整理一下)。

    2、Android本质上来讲仅仅是一个client,所以是基于C/S模式的开发(B/S本质上也是C/S,只是是一种特殊的C/S,浏览器充当了client的角色),要想与server端通信须要通过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,这些都须要在server安装。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学习我将会側重于Androidclient程序部分。在server端我会使用已经掌握的.NET技术实现(比方WCF、Web API等)。假设学习过程中涉及到操作系统底层的知识,会适当的了解一下。目标就是熟练掌握Android应用开发部分。


  • 相关阅读:
    PJzhang:CVE-2020-1472微软NetLogon权限提升漏洞~复现
    PJzhang:vulnhub靶机sunset系列SUNSET:DECOY
    PJzhang:vulnhub靶机sunset系列SUNSET:TWILIGHT
    PJzhang:vulnhub靶机sunset系列SUNSET:SUNRISE
    PJzhang:vulnhub靶机sunset系列SUNSET:MIDNIGHT
    PJzhang:vulnhub靶机sunset系列SUNSET:SOLSTICE
    PJzhang:whatweb指纹扫描工具样例
    HTTP状态码解读
    【并发】线程与进程的区别
    MYSQL之性能优化 ----MySQL性能优化必备25条
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6930599.html
Copyright © 2011-2022 走看看