Android简单介绍

1G-4G介绍

GGeneration时代的意思

1.  概述

1G1G就是大哥大,手机类似于简单的无线电双工电台,通话锁定在一定频率,所以

使用可调频电台就可以窃听电话

 

2G第二代GSMCDMA等数字手机手机使用PHSGSM或者CDMA这些十分成熟的

标准具有稳定的通话质量和合适的待机时间支持彩信业务的GPRS和上网业务员的WAP服务记忆各式各样的Java程序等

wap : wait and pay  等待并且要付费(手机访问wap.baidu.com而非www)

 

3G:3G3rdGeneration,第三代移动通信技术。他是将无线通信与国际互联网等

多媒体通信结合的新一代移动通信系统。它能处理图像、音乐、视频流等多种多媒体形式,提供包括网页浏览、电话会议、电子商务等多种通信服务

 

4G第四代移动电话行动通信。该技术包括TD-LTEFDD-LTE两种制式。4G是集

3GWLAN于一体,并能够传输高质量视频图像。4G系统能够以100Mbps的速度下载,比目前的拨号上网快200倍,并能够满足几乎所有用户对于无线服务的要求。此外,4G可以再DSL和有线电视调制解调器没有覆盖的地方部署,然后再扩展到整个地区。

现阶段移动联通等推出的4G其实都是3.9G

2.  手机支持的型号

移动4G : TD-LTE

联通4G : FDD-LTE/TD-LTE

电信4G : FDD-LTE

移动3G : TD-SCDMA

联通3G : WCDMA

电信3G : CDMA2000

移动/联通2G : GSM

电信2G : CDMA

双模(电信+移动/联通2G)、3G全网通

LTE : Long term evolution  长期演进的 

4G支持的型号,需要记住

移动/联通 和 电信 不能混用

3.  2G3G4G的区别

2G : 拨号上网带宽12.2K

3G : 宽带上网带宽384K~2M

4G : 光纤到户带宽100M

3.9G :10M

记住2G4G最大的区别是速度的区别

二.安卓系统介绍

1.  简介

Android系统最初由安迪·鲁宾等人开发制作,最初开发这个系统的目的是创建一个数码相机的先进操作系统后来发现市场需求不够大,加上智能手机市场快速成长,于是Android被改造为一款面向智能手机的操作系统

Android于2005年8月被美国科技企业Google收购。

2.  版本进化史

1.5  Cupcake(纸杯蛋糕) 

1.6  Donut(甜甜圈)---首次支持CDMA

2.0  Éclair(松饼)---多账户支持,第二个里程碑(第一个是1.5

2.1  Eclair(闪电泡芙)

2.2  Froyo(冻酸奶)

2.3  Gingerbread(姜饼)---支持NFC

3.0  Honeycomb(蜂巢)

4.0  Ice cream SandWich(冰激凌三明治---安卓历史上最重大的一次升级

4.1  Jelly Bean (果冻豆 )---继蜂巢后一次全新的平板策略尝试

4.2  Jelly Bean (果冻豆 )

5.0  Lime Pie  (酸橙派)

三.安卓体系结构

Android是一个完整的操作系统,包含了中间件和包含了一些关键的应用程序。

Android有四层架构,自上向下依次为:

应用层

应用框架层

函数库

Linux内核

 

 

四.JVMDVM的区别

Google为了解决与Oracle之间关于Java相关专利和授权的纠纷开发了DVM

 

JVMDVM之间的区别

1. 编译后的文件格式不同

JVM : .java->.class->.jar

DVM : .java->.class->.dex->.odex

2. 基于的架构不同

JVM : 基于栈的架构

DVM : 基于寄存器的架构

五.ART模式概述

ART模式是Android Runtime的简称,Android 4.2开始出现

 

Android 4.2以前,安卓手机系统的应用程序均在Dalvik Java的虚拟机上运行,这种运行模式是还要依靠一个编译器来实现与应用程序的沟通。应程序每次运行时,都需要将程序内的代码即使转变为机器码才能运行,这无形中多附加了一道手续,这就造成了耗电相对较快、占用内存大、即使是旗舰机用久了也会卡顿严重的现象

ART模式通过在安装应用程序时,自动对程序进行代码预读取编译,让程序直接编译成机器语言,免去了Dalvik模式要时时转换代码,实现高效率、省电、占用更低的系统内存、手机运行流畅。但凡事总有正反两面,ART在解决了该问题的同时,同时也有如:会占用略高一些的存储空间、安装程序时要相比普通Dalvik模式要长一些时间来实现预编译

六.Android开发环境搭建

开发工具包括

Eclipse

SDK

SDK Manager

SDK工具包包括:

Eclipse+ADT插件

Android SDK

Android Platform-tools

Android开发平台

模拟器镜像

 

ADT : Android development tools  安卓开发工具集  

SDK : Standard Devlope kits  默认开发工具集 

Platform-tools  平台工具

Extars  扩展

Android support  安卓的依赖包,去支持其他的版本号的API,实现向下兼容

七.Android虚拟机

AVD : Android Virural Device 安卓虚拟设备

点击Eclipse工具栏手机形状的图标去查看当前的Android模拟器

 

创建一个AVD的一些注意事项

1. Device选项常用的3种屏幕适配

a) VGA : 640*480  标准的屏幕大小

b) HVGA 320*480  一般的VGA

c) QVGA 320*240  4分之一的VGA

 

2. 默认情况下,Android会给每个应用的内存堆分配16M

八.DDMS

 DDMS Device Definition monitor Service 设备信息监听服务

 

 常用的2个选项卡:File Explorer / Emulator Control

 

 File Explorer : 文件管理器即Android系统的文件目录管理

常用的文件夹

data/app : 装三方应用程序用的

data/data : 应用程序包(包名是区分不同应用程序的唯一标志)

 

 Emulator Control : 模拟器控制器

常用功能:

Speed : 支持的速度可选3G,2G,全部等

Incoming number : 填写一个号码可以对模拟器打电话发短信

Location Controls : 可以填写经纬度更改模拟器的位置信息

九.SDK目录结构

 

十.Android应用程序目录结构

src/   java原代码存放目录

gen/ 自动生成目录

gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.javaR.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

 

bin    用于存放ADT编译时产生的临时文件, 最终会被打包成一个xxx.apk

 

res/   资源(Resource)目录

在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。

res/drawable 

专门存放pngjpg等图标文件。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源

res/layout 

专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于显示用户操作界面

res/values 

专门存放应用使用到的各种类型数据。不同类型的数据存放在不同的文件中。

  strings.xml  定义字符串和数值

  arrays.xml   定义数组

colors.xml   定义颜色和颜色字串数值

dimens.xml   定义尺寸数据

styles.xml   定义样式。

res/anim/ 

存放定义动画的XML文件

res/xml/ 

Activity中使用getResources().getXML()读取该目录下的XML资源文件

res/raw/ 

该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,它们被直接加入到程序安装包里

 

libs/      支持库目录

程序开发时需要的一些三方的jar包可以放在这个目录,系统会自动把里面的jar包,添加到环境变量。

assets     资源目录

Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gp

AndroidManifest.xml  项目清单文件

这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。

project.properties  项目环境信息,一般是不需要修改此文件

 

 

十一.Android打包过程

1.生成apk文件

          生成.dex文件 . java  javac   .class  dx.bat  .dex

          生成resources.arsc 索引文件

          未编译的资源

          清单文件AndroidManifest.xml转换成二进制

          默认签名文件debug.keystore 使用签名文件进行打包

2.加载apk文件

把apk文件加载到/data/local/temp/XXX.apk

3.安装apk文件

          把/data/local/temp/XXX.apk剪切到/data/app/包名-1.apk

          在/data/data/下创建一个文件夹,名为:程序的包名

 

签名 : 对你的文件打了一个唯一的标识码,任何人除了你自己,是无法更改这个程序的APK : Android package

 

十二.Android调试桥--adb

adb :  android debug bridge 安卓调试桥

Android虚拟机相对于操作系统来说实际上是一个独立运行的系统adb内部采用

socket通信机制,用于系统之间进行通信

常用命令

adb devices  列出所有的设备(可以实现开启设备的作用)

adb shell    挂载到linux的空间 

adb install xxx.apk   安装apk

adb install –s  emulator-5554 D:/xxx.apk 如果存在多个设备,安装apk

到指定设备

adb pull    拉取文件到指定文件夹

adb push   把文件推送到指定文件夹

adb connect  连接(在同一网段下)

adb kill-server  杀死ADB

adb start-server 开启ADB

 

adb.exe位于adt-bundle-windows-x86_64\sdk\platform-tools目录下在命令行使用adb指令时需指定文件路径,这样比较麻烦,不方便使用

adb.exe的路径信息配置到环境变量的path下,方面我们在命令行使用adb

十三.电话拨号器

制作一个电话拨打器输入要拨打的电话号码点击拨打按钮可以拨出电话效果图如下

 

 

步骤

1. 创建一个Android Application Project(工程名可以中文,包名不行)

2. 在布局页面添加三个控件代码如下

 

3. java文件添加逻辑代码如下:

 

4. 在清单文件中添加权限信息

若不添加权限点击拨打按钮时程序会报错停止运行,错误信息如下:

 

 

打开清单文件单机下方Permission选项卡添加Uses Permission,为程序添加一个android.permission.CALL_PHONE权限

 

 

 

5. 此时再次运行程序程序正常运行能够拨打电话

   

十四.四种点击事件

第一种内部类

创建一个内部类去实现监听器

为控件添加监听器实例

第二种匿名内部类

 无需创建实现类直接以匿名内部类的方式为控件添加监听器实例

 

第三种由类文件去实现监听接口

由类文件实现监听接口

 

实现接口方法(可以采用switch-case结构)

 

 

直接使用this为控件注册事件

 

第四种在布局页面注册事件

注册点击事件

逻辑代码中添加事件方法call(View )

 

 

 

 

十五.短信发送器实例

制作一个短信发送器添加发送人信息和发送信息主体内容后点击发送按钮可以发送短息其效果图如下

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

步骤

1. 在布局文件添加控件

 

2. 添加逻辑代码如下

 

3. 在清单文件添加权限信息如下

 

4. 开启2个模拟器,测试效果

 

 

 

十六.Android常用布局

1.线性布局

线性布局在xml文件中使用来定义

 

线性布局可以分为水平和垂直方向的布局,可以通过android:orientation来定义方向

android:orientation=“horizontal表示水平方向

android:orientation=“vertical表示垂直方向

 

实现效果:

布局代码

 

 

属性

android:layout_weight="1"  权重即所占百分比使用前需先将宽度或者高度

大小设置为0

2.框架布局

框架布局是将控件组织在Android程序的用户界面中最简单的布局类型之一。

框架布局在xml文件中使用<FrameLayout>来定义

框架布局中的子视图总是被绘制到相对于屏幕的左上角上

所有添加到这个布局中的视图都是以层叠的方式显示

第一个添加到框架布局中的视图显示在最底层,最后一个被放在最顶层,上一层的视图会覆盖下一层的视图,类似于javawebdiv

实现效果

 

布局代码

 

属性

android:layout_gravity="center" 布局位置可以是center/top等等

 

3.相对布局

相对布局是实际布局中最常用的布局方式之一。

框架布局在xml文件中使用<RelativeLayout>来定义

相对可以设置某一个视图相对于其他视图的位置,这些位置可以包括上下左右等,因而相较于其他的布局方式而言具有很大的灵活性

 

实现效果

布局代码:

 

 

 

 

属性

以值为true/false的一种属性:

   android:layout_centerInParent="true"     在父窗体的中间

       android:layout_centerHorizontal="true"   在父窗体水平居中

android:layout_centerVertical="true"     在父窗体内垂直居中

 

以值为300dip等数值的一种属性:

  android:layout_marginLeft="50dip"

        android:layout_marginRight="50dip"

        android:layout_marginTop="50dip"

        android:layout_marginBottom="50dip"

距离上下左右的大小

以值为控件ID的一种属性:

android:layout_above="@id/center"       在指定控件的上方,注意ID 

android:layout_below="@id/center"       在指定控件的下方

android:layout_toRightOf="@id/center"  在指定控件的右方

android:layout_toLeftOf="@id/center"   在指定控件的左方

android:layout_alignLeft="@id/left"    和指定空间左对齐

android:layout_alignRight="@id/right"  与指定控件右对齐

 

android:layout_alignParentLeft="true"  

        android:layout_alignParentTop="true"

        android:layout_alignParentBottom="true"

        android:layout_alignParentRight="true"

和父窗体上下左右对齐

扩展单位的概念

DIP : 概念DP,设备独立像素  无论使用多大的屏幕 都会按比例的去放置

PX  :  像素             无论使用多大的屏幕,都会按他自己的像素值去摆放

SP  : 比例像素 主要处理字体的大小可以根据用户系统的字体自适应

你可能感兴趣的:(Begining,Android,android开发,android发展,版本,android体系结构)