Android入门

一、Android的初识

1、Android起源发展

 Android最先出现在法国作家利亚.亚当的科幻小说《未来夏娃》中,书中一机器人名为Android。后安卓之父安迪.鲁宾

(Andy Rubin)开发的系统便以Android命名,后公司有GOOGLE公司于2005年收购,Android也有谷歌公司接手开发。

Andy Rubin还开发了一套手机操作系统,叫Danger,后由微软收购。

Android平台是基于linux2.6的自由及开源代码的操作系统,主要用于移动设备。由Google公司和开放手机联盟(Open 

Handset Alliance)领导及开发。


当前常见的手机操作系统:

IOS: Apple公司的手机、平板的操作系统 盈利能力高

Windows Phone:微软公司的手机操作系统 虽然在电脑领域有绝对的统治 但手机操作系统前途堪忧 在Android和IOS

领导的手机操作系统面前 它的特性没有被大众所认可


其余的手机操作系统即将淘汰或已经淘汰,不做赘述。

事实上,Android已经超出了手机操作系统的范畴,它已经被用在TV、手表以及各种可穿戴设备。它已经是一个应用十分广

操作平台,支持的设备日益扩大。

2、Android平台的构架及特性

Android系统的底层建立在Linux系统之上,由操作系统、中间件、用户界面以及应用软件4层组成,它采用一种被称为

软件叠层(Software Stack)的方式进行构建。这种软件层次保证了层与层之间的低耦合。


Android系统的体系结构:

1) Linux内核层:

Android系统建立在Linux2.6之上。Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心

系统服务。同时Linux内核也是系统硬件与软件叠层之间的抽象层。

2) Android运行时:

Android运行时由两部分组成,一是Android核心库集,二是ART。Android核心库集提供了Java语言核心库所能使

用的绝大部分功能,而虚拟机则负责应用程序的运行。

在Android4.4之前的虚拟机是Dalvik虚拟机,之后则使用了ART虚拟机。

Dalvik虚拟机(DVM):基于寄存器(JVM基于栈)传统的Android运行虚拟机,使用JIT(just in time)逐条将Dalvik字

节码编译为本地机器码并运行。这样的好处是占用空间小,应用程序安装快,但同时也使得代码运行效率较低(比

JVM快)。

ART:与传统的Dalvik虚拟机相比较,使用的是AOT(ahead on time),它是将原本编译时的动作提前到安装时

先将字节码文件编译成为本地机器码,移除了运行时的解释执行开销,运行速度自然比Dalvik虚拟机快。反过来

因为预先将字节码编译为了机器码,所以占用的内存空间更大,应用程序安装和系统启动时间也就更长。

3) 函数库:

这层包含了一套被不同组件调用的C/C++库的集合,一般不能直接调用这层的库集,但可以通过上面层的应用程序

调用下面是一些核心库:

系统C库:一个从BSC系统派生来的标准C系统库(libc),并且专门为嵌入式Linux设备调整过。

媒体库:基于PackVideo的OpenCORE,这套媒体库支持播放和录制许多流行的视频、音频格式,以及查看静态

图片。

Surface Manager:管理子系统的访问。

LibWebCore:一个浏览器引擎,为WebView提供支持。

SGL:底层的2D图形引擎。

3D libraries:有关3D的类库,可以实现软硬件的3D加速。

Free Type:位图和向量字体显示。

SQLite:供所有的应用程序使用的轻量级数据库。

4) 应用程序框架

我们开发应用程序就是面向应用框架进行的。这层提供了大量共开发的API。

5) 应用程序层

Android系统包含一系列的核心应用程序,包括电话、联系人、SMS程序等,我们开发的就是Android应用程序。

二、Android开发环境的搭建

1、IDE工具

当前主流的Android IDE工具有Android Studio和Eclipse+ADT,Android Studio是Google官方提供的IDE工具。

Android Studio需要在http://developer.android.com下载,由于被墙,需要翻墙挂代理才能访问和下载。


2、Android SDK

移步上述网站下载。

各文件夹的文件结构:


add-ones:存放第三方公司为Android平台开发的附加功能系统。刚解压为空

platforms:存放不同版本的Android系统,刚解压为空

tools:存放Android开发、调试工具

docs:存放的是SDK开发问价和API文档等

extras:存放了Google提供的USB驱动、Intel提供的硬件加速等附加工具包

platforms-tools:存放了Android平台的相关工具

sources:存放了Android系统的源代码

system-images:存放了不同的Android平台针对CPU架构提供的系统镜像文件

AVD Manager.exe:AVD管理器

SDK Manager.exe:SDK管理器,可以通过它下载各种版本的Android SDK

3、运行、调试环境

Android真机(真机的调试速度更快、效果更好)

配置Android Virtual Devices(AVD)

使用第三方的虚拟机,如Genymotion等

三、Android命令行的使用

1、创建、浏览、删除、AVD

android list :列出电脑上所有的已安装Android版本和AVD设备

android list avd:列出所有的AVD设备

android list target:列出所有的Android版本

android create avd -n <avdname> -t <AndroidID>:创建一个虚拟机

android move avd:移动或重命名avd

android delete avd:删除一个AVD设备

android update avd:升级一个AVD设备使之符合新的SDK环境

android create project:创建一个新的Android项目

2、使用Android模拟器(Emulator)

启动AVD虚拟机的方式:

emulator -avd <AVDname>

emulator -data <镜像文件名>

3、使用Monitor进行调试

minitor.bat 调出Android Device Monitor

4、Android Debug Bridge(ADB)

adb devices:查看当前运行的模拟器

adb push filedirectory:将电脑文件复制到模拟器中

adb pull filedirectory:将模拟器文件复制到电脑中

adb shell:启动模拟器的shell窗口

adb install [-r] [-s] file:安装file指定的APK包, -r代表重新安装APK包,-s则是将APK包安装到SD卡上,默认是安装到内部

存储器上。

adb uninstall [-k] <package>:卸载应用 -k表示只卸载应用,不删除应用数据

5、mksdcard

mksdcard [-l lable] <size><file>:创建sdcard


以上的命令行虽然存在,但现在的Android开发主要是使用图形化界面进行开发,但追求原理是每个程序员应有的心态

四、第一个Android项目

在终端中输入如下命令:

android create project -n HelloWorld -t android-21 -p HelloWorle -k org.helloworld -a HelloWorld

其中-n指定项目名,-t指定android平台版本,-p指定项目的保存路径,-k指定项目的包名,-a指定Activity的名称

Android项目中文件的结构

src:存放java源代码

gen:保存系统自动生成的R文件

assets:本地的资源文件 存放在本地电脑上

bin:编译后的文件 包含APK文件等

res:存放各种资源文件 如Layout、Values等

drawable:存放项目的各种图片、不同的屏幕分辨率有对应的drawable文件夹

layout:各种布局文件

menu:菜单相关

values:存放XML格式的资源文件

AndroidManifest.xml:项目的清单文件,用于控制整体的属性。四大组件都需要在该文件中配置

包含以下信息:

应用程序的包名

应用程序包含的组件

应用程序兼容的最低版本

应用程序使用系统所需的权限信息

其他应用程序访问改应用程序所需的访问权限

proguard-project.txt:混淆代码用

priject.properties:指定项目的Android版本

五、应用程序签名

在同一手机上安装两个包名相同的应用,后面的应用会覆盖之前的应用。为了避免这种情况的发生,Android要求对作为产

品发布时进行签名

签名有两个作用:

确定发布者的身份。避免了相同包名的应用相互覆盖的情况

确保应用的完整性。签名会对应用中的每个文件进行处理,从而确定程序保中的文件不会被替换










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值