Android笔记(五十七)Android总结:基础篇

什么是安卓

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。目前发行版本是6.0

安卓平台的优势

一、开放性 
     在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。  
二、挣脱运营商的束缚 
  在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市, 用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的
笑谈。
三、丰富的硬件选择 
  这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特
色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到 iPhone上使用、联系人等资料更是可以方便地转移。 
四、不受任何限制的开发商 
  Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如可控制正是留给Android难题之一。 
五、无缝结合的Google应用 
  如今叱诧互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。

安卓的架构

Android大致可以分为四层架构,五块区域:

1.Linux内核层

Android系统是基于Linux2.6内核,为各种硬件提供了底层的驱动。

2.系统运行库层

这一层通过一些C/C++库来为Android系统提供呃主要的特性支持,譬如SQLite库提供了数据库支出,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核等。

同样在这一层还有Android运行库,它主要提供一些核心库,能够允许开发者使用Java语言来编写Android应用,另外Android运行库中还包含了Dalvik虚拟机,它使得每个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例,相较于Java虚拟机来说,Dalvik针对手机内存、CPU等做了优化处理,是专门为移动设备定制的。

3.应用框架层

这一层主要提供了构建应用时可能用到的各种API

4.应用层

所有安装在手机上的应用程序都是属于这一层的。

Android工程目录

项目建成之后,会生成一下目录和文件:

src存放项目的Java源代码。

gen:由系统自动生成,主要有一个R.java文件,我们在项目中添加的资源会在这个文件中生成一个ID。

assets存放一些随程序打包的文件,在程序运行时可以动态读取这些文件的内容,它里面的资源不会在R.java中生成ID。

bin:编译时候自动产生的文件。

libs第三方jar包

res

         drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi、drawable-xxhdpi:

(1)drawable-hdpi里面存放高分辨率的图片,如WVGA
(480x800),FWVGA (480x854)

(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA
(320x480)

(3)drawable-ldpi里面存放低分辨率的图片,如QVGA
(240x320)

ldpi:240x320

mdpi:320x480

hdpi:480x800、480x854

xhdpi:至少960*720

xxhdpi:1280×720

系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片

         layout存放布局文件

menu用于定义应用程序菜单的内容

         values:存放字符串内容

dimens.xml存放尺寸内容,可以通过R.dimens访问相应资源

strings.xml存放一些文本字符串,可以通过R.string访问应用的资源

style.xml定义UI元素的格式和外观,可以通过R.style类访问相应资源

AndroidManifest.xml整个项目的配置文件,程序中的四大组件以及权限、兼容版本、目标版本等内容都需要在这里声明

project.properties指定编译程序时使用的SDK版本

Android编译过程

编写.java文件→编写.java文件生成.class文件→将.class文件转化成DavlikVM支持的.dex文件→将.dex打包成未签名的.apk文件→对未签名的.apk文件进行签名

Android系统启动过程:

参照博文:Android系统启动过程

Android应用启动过程

参照博文:Android应用程序启动过程源代码分析

时间: 2024-12-19 00:37:44

Android笔记(五十七)Android总结:基础篇的相关文章

Android笔记(五):Android中的Radio

原文地址:http://irving-wei.iteye.com/blog/1076097 上篇介绍了CheckBox,这节,将接触到的是RadioGroup和RadioButton. 它们的关系是:一个RadioGroup对应多个RadioButton,而一个RadioGroup中的RadioButton只能同时有一个被选中,它的选中值就是该RadioGroup的选中值. 这一节的代码运行效果图如下所示: 具体的代码编写过程如下: 首先在strings.xml中添加本程序所要用到的字符串: X

[Android 性能优化系列]内存之基础篇--Android如何管理内存

大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 原文地址:http://developer.android.com/training/articles/memory.html 在接下来的一段时间里,我会每天翻译一部分关于性能提升的Android官方文档给大家 下面是本次的正文: ################ 随机访问存储器(Ram) 不管在哪种软件

[Android 性能优化系列]内存之基础篇--Android怎样管理内存

大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 原文地址:http://developer.android.com/training/articles/memory.html 在接下来的一段时间里,我会每天翻译一部分关于性能提升的Android官方文档给大家 以下是本次的正文: ################ 随机訪问存储器(Ram) 无论在哪种软件

Android笔记二十七.Bitmap之简易图片查看器

转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 为了增强用户之间的交互,Android系统中提供了一些API和部件给我们开发美观有趣的应用.比如Android系统提供了ImageView来显示静态图片.AnimationDrawble来开发逐帧动画以及通过Animation对普通图片使用不减动画等.另外,Android应用中的图片不仅包括*.png.*.jpg.*.gif等格式的位图,也包括使用XML资源文件定义的各种Drawable对象.关

Android笔记(六十七) 自定义控件

实际编程中,系统提供的控件往往无法满足我们的需求,一来是样子丑陋,二来是一些复杂的组合需要多次使用的话,每次都写一堆控件的组合会很耗费时间,所以我们将这些组件的组合自定义为一个新的控件,以后使用的时候直接用该控件,方便又简单.最常见的例子就是软件中的titleTar 实现自定义控件的步骤: 1.设置控件的属性 2.实现我们的View 3.引用我们自定的View 官方文档:http://developer.android.com/training/custom-views/create-view.

android学习五(android中基本控件的使用)

前面已经学了activity的一些使用,那么下面我们进行android中基本的控件的学习和使用. 1.android中的TextView控件 新建一个项目,项目名为UITest,才有默认的设置,修改布局文件的内容,如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" a

Android进阶(二十七)Android原生扰人烦的布局

Android原生扰人烦的布局 在开发Android应用时,UI布局是一件令人烦恼的事情.下面主要讲解一下Android中的界面布局. 一.线性布局(LinearLayout) 线性布局分为: (1)垂直线性布局: (2)水平线性布局: 针对这两种区别,只是一个属性的区别 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertic

Android笔记(六十三) android中的动画——逐帧动画( frame-by-frame animation)

就好像演电影一样,播放实现准备好的图片,来实现动画效果. 逐帧动画需要用到AnimationDrawable类,该类主要用于创建一个逐帧动画,然后我们把这个动画设置为view的背景即可. android提供两种方法为AnimationDrawable添加帧:XML定义和JAVA代码创建. XML 因为动画帧的资源需要是一个Drawable对象,所以需要把它放到Drawable目录下.在<animation-list>使用<item>来添加一帧 anima.xml <?xml

Android笔记二十三.Android基于事件监听器处理机制

转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.Android的事件处理 Android事件处理包括两个部分:Android事件处理机制(基本)和Android消息传递机制(进阶).前者包含三种处理方式,即基于监听的事件处理.基于回调的事件处理.直接绑定到标签;后者包含两种处理方式,即Handler消息传递.异步任务处理. 1.Android的事件处理机制 (1)基于监听的事件处理方式 通常做法是为Android界面组件绑定特定的事件监听

Android之旅十七 android中的广播使用

广播是一种广泛运用在应用程序之间传输信息的机制,android中的广播用于监听系统事件或应用程序事件!android中的广播包括普通广播.有序广播以及异步广播(粘性广播)! 广播又有常驻型广播和非常驻型广播,常驻型广播是在xml中进行注册的,当应用程序关闭后,如果有对应的广播发送过来,广播接收器还是能够被激活:非常驻型广播是在代码中进行注册的,当应用程序关闭,广播也就取消了,我们可以在Activity中的onCreate或者onResume方法中注册广播,然后在onDestory或者onPaus