打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android4开发入门经典 之 第一部分:Android入门基础
Android4开发入门经典 之 第一部分:Android入门基础

很好的一个学习资料,转载来给大家分享。本文主要是介绍Android的一些基础知识,希望对大家有所帮助。

 

Android一词的本义指机器人,同时也是Google2007115日宣布的基于Linux平台的开源手机操作系统的名称。

Google还联合手机制造商、手机芯片厂商、移动运营商,共同于200711月组建一个全球性的联盟组织,称作开放手机联盟(Open Handset Alliance),共同来开发Android

Android SDKSoftware Development Kit, 即软件开发工具包)

Android SDK提供了在Android平台上使用Java语言进行Android应用开发必须的工具和API接口。

Android能干什么

下面罗列了一些Android的特性,包含但不限于:

1:应用程序框架,支持组件的重用与替换

2Dalvik虚拟机 专门为移动设备做了优化

3:内部集成浏览器,该浏览器基于开源的WebKit引擎

4:优化的图形库:包括2D3D图形库,3D图形库基于OpenGL ES(硬件加速可选)

5SQLite用作结构化的数据存储

6:多媒体支持 包括常见的音频、视频和图片文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF

7GSM电话 (依赖于硬件)

8:蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)

9:照相机,GPS,指南针,和加速度计 (依赖于硬件)

10:丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件

Android有什么


Linux内核

Android 的核心系统服务依赖于Linux的内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。

本机库

linux内核上面是Android本机库,就是libraries,这些本机共享库都是由c/c++编写的,针对硬件进行了编译,并由手机制造商预先安装到手机上。

这些库能被Android系统中不同的组件使用,它们通过 Android 应用程序框架为开发者提供服务。

以下是一些核心库:

1:界面管理器(surface manager):它并不是将显示内容直接绘制到屏幕缓冲区,而是将绘制命令传递给屏幕外的位图,然后将该位图和其他位图组合起来,形成用户看到的内容,这种方法允许系统实现所有有趣的功能,如透明窗口和奇特的过渡效果。

22D3D图形:使用Android的时候,二维和三维图象可以结合到一个用户界面上,库将使用3D硬件(如果有的话)或者快速软件渲染器。

3:多媒体编解码器:Android可以播放视频内容,并可以使用各种格式录制和播放音频:如AACAVCH.264)、H.263MP3MPEG-4

4sql数据库:SqlLite,一个轻量级的关系数据库引擎,firefoxiphone中也是使用的它。

5:浏览器引擎:webkit , Googlechrome,苹果的Safari浏览器,iphone,诺基亚的s60平台都是用的它

6:系统 库:一个从 BSD 继承来的标准 系统函数库( libc ), 它是专门为基于 embedded linux 的设备定制的。

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

83D libraries:基于OpenGL ES;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。

9FreeType:位图(bitmap)和矢量(vector)字体显示。

运行时环境

运行时环境包括:java的核心类库,虚拟机DalvikDalvik与传统的Java虚拟机不同在于:

1Dalvik 基于寄存器,而JVM 基于栈。,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

2Dalvik运行.dex文件,编译时会将classjar文件转换成为.dex.dex文件比class文件更紧凑更高效,这是针对Android设备内存有限且通过电池供电,能耗要低的特点作出的重大改进。

3Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭.

4Android附带的Java库与传统的java库也有很多的不同,当然也有很大一部分相同,做了很多改进。

应用程序框架

应用程序框架提供了应用程序开发所需要的大部分基础功能,包括:

1:活动管理器(Activity Manager):用来控制应用程序生命周期,同时维护一个公共的后退栈(back stack)供用户使用

2:内容提供者(Content Providers):用来封装需要在应用程序之间共享的数据,如联系人信息等

3:资源管理器(Resource Manager):资源是指的程序中涉及的任何非代码的内容

4:位置管理器(Location Manager):用来处理关于位置的功能,比如GPS

5:通知管理器(notification Manager):像收到短信、邻近预约时间、临界状态报警、异常入侵等事件都可以以友好的方式通知用户

6:视图系统(View System),丰富而又可扩展的视图组件,可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至可嵌入的web浏览器等。

7:窗口管理器(Window Manager):用来管理窗口的一些状态、属性、view增加、删除、更新、窗口顺序、消息收集和处理等。

8:包管理器(Package Manager):用来封装所有基于加载信息的数据结构,安装卸载应用查询permission相关信息;查询Application相关信息(applicationactivityreceiverserviceprovider及相应属性等)

9:电话管理器(Telephony Manager):用来管理所有与电话相关的操作以及相应事件的管理

AndroidHelloWorld

构建环境

1:安装JDK6以上

2:到http://developer.android.com,下载AndroidSDK Manager,通过这个软件来进行初次的AndroidSDK下载和管理。

安装完SDK后,要把sdk\tools设置到path里面去。

3:安装Eclipse,最好安装最新版

4:安装ADT插件,在插件安装后,要设置SDK的位置,在windowpreferenceandroid选项里面,右边有一个SDK Location的配置。

5:创建Android虚拟设备,也就是AVD,在windowAndroid SDK and AVD Manager里面创建一个新的AVD

SDK下包的说明

1add-onsAndroid开发需要的第三方文件和软件库

2docsAndroid的文档。包括开发指南、API参考、资源等

3extras:扩展的附加包

4platforms:你安装下载的所有Android平台,分版本存放

5platform-tools:平台相关的工具

6samples:所有的样例程序

7system-images:系统使用的图片

8temp:临时操作或缓存的目录

9tools:应用Android平台进行开发所需要的一些开发工具

常见的api包说明

1android.app :提供高层的程序模型、提供基本的运行环境

2android.content :包含各种的对设备上的数据进行访问和发布的类

3android.database :通过内容提供者浏览和操作数据库

4android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.

5android.location :定位和相关服务的类

6android.media :提供一些类管理多种音频、视频的媒体接口

7android.net :提供帮助网络访问的类,超过通常的java.net.* 接口

8android.os :提供了系统服务、消息传输、IPC 机制

9android.opengl :提供OpenGL 的工具

10android.provider :提供类访问Android 的内容提供者

11android.telephony :提供与拨打电话相关的API 交互

12android.view :提供基础的用户界面接口框架

13android.util :涉及工具性的方法,例如时间日期的操作

14android.webkit :默认浏览器操作接口

15android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用

创建一个Android工程

项目的目录结构说明如下:

1assets :存放原生文件,这个目录保存的文件可以打包在程序里。和res的不同点是,android不为assets下的文件生成ID,如果使用assets下的文件,需要指定文件的路径和文件名。

2bin : Java编译输出的路径

3gen :存放android编译资源文件自动生成的R文件。

4res :存放程序所需要的资源文件,也就是非Java的文件。常见的目录有:

1res/animator/ XML文件,定义动画属性

2res/anim/ XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象

3res/color/XML文件,定义颜色状态的列表

4res/layout/:存放被编译为屏幕布局(或屏幕的一部分)XML文件

5res/menu/XML文件,用来定义应用的菜单

6res/drawable/:存放图片文件,如.png, .9.png, .jpg, .gif等。放在这里的图像资源可能会被aaptandroid assert packaging toolandroid资源打包工具)自动地进行无损压缩优化。如果你不想图片被压缩改变,请把图像文件放在 res/raw/目录下,这样可以避免被自动优化。

7res/raw/:直接复制到设备中的任意文件,它们无需编译

8res/values/:存放可以被编译成很多种类型的资源文件, XML 格式的。常见的文件有:

array.xml :定义数组

colors.xml :定义color drawable和颜色的字符串值。

dimens.xml 定义尺寸值(dimension value)

strings.xml 定义字符串(string)值。

styles.xml定义样式(style)对象。

9res/xml/:任意的XML文件,在运行时可通过调用Resources.getXML()读取。

5src : 存放Java源代码

项目的清单文件AndroidManifest.xml :这个清单给Android系统提供了关于这个应用程序的基本信息,系统在能运行任何程序代码之前必须知些信息。AndroidManifest.xml主要包含以下功能:

1)命名应用程序的 Java 包,这个包名用来唯一标识应用程序

2)描述应用程序的组件:活动,服务,广播接收者,以及组成应用程序的内容提供器;对实现每个组件和公布其能力(比如,能处理哪些意图消息)的类进行命名。这些声明使得 Android系统了解这些组件以及在什么条件下可以被启动;

3)决定应用程序组件运行在哪个进程里面

4)声明应用程序所必须具备的权限,用以访问受保护的部分 API,以及和其它应用程序交互;

5)声明应用程序其他的必备权限,用以组件之间的交互;

6)列举测试设备Instrumentation类,用来提供应用程序运行时所需的环境配置和其他信息,这些声明只是在开发和测试阶段存在,发布前将被删除

7) 声明应用程序所要求的Android API的最低版本级别;

8)列举application所需要链接的库

strings.xml修改hello对应的字符串

启动模拟器开始测试运行

认识模拟器和DDMS

DDMSDalvik Debug Monitor Server Dalvik调试监视器服务,它支持端口转换(因此你可以在IDE中给你的代码下端点),支持抓取模拟器屏幕,线程和堆栈信息,以及许多其他功能。

logcat:转储系统信息,这些信息包括,模拟器抛出错误时堆栈的运行过程以及日志信息。


 

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android系统架构及源码目录结构
Android开发入门解答
移动开发基础教程:Android是什么 安卓开发
Android的基本世界观——系统简介,组件逻辑及其他
Android源代码结构分析
Android系统层次结构是怎样的?各个层之间关系是什么?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服