初识Android

来源:互联网 发布:下载免费炒股软件 编辑:程序博客网 时间:2024/05/18 15:53

Android概述

一、手机制式的发展

所谓的4G中的G指的是Generation,即移动通信技术世代。

  • 1G 语音通话,模拟信号,无线电
  • 2G (GSM\GPRS\EDGE)增加接收数据的功能,接收邮件和网页(wap),java程序(J2ME)
  • 3G 无线通信技术结合互联网等多媒体通信
  • 4G 集高速无线网络和有线网络WLAN一体的通讯网络

二、IT业的三大热点

  1. 云计算

    • 通过Internet以服务的方式提供动态可伸缩的虚拟化的资源的计算模式
    • 简单理解:个人资料都存储在云服务器上,所有操作的处理都是云服务器来处理的,个人计算机只需要能安装浏览器
    • 瓶颈:网速、服务器性能、云计算(分析用户行为数据,使用大数据技术,hadoop分布式文件存储系统)
  2. 物联网

    • Internet of Things(IOT)物物相连的互联网
    • 通过信息传感设备把物品和互联网连接,进行信息交换和通信的网络
  3. 移动互联网

    • 结合移动通信和互联网
    • 移动智能操作系统:Android 、IOS、Windows Phone、Blackberry等

三、Android历史

1. 安卓之父

Andy Rubin(安迪-鲁宾),Android平台创始人,Google移动平台副总裁。

2. 发展史

  1. 05年,Google收购了 Android inc.
  2. 07年,Google号召84家厂商组建开放手机联盟共同研发改良Android系统,SDK1.0预览版发布
  3. 08年,第一款Android手机G1(HTC代工)诞生,并通过Apache License开源

四. Android版本

1.版本发展

  • 1.X版本 入门级,只适用手机
  • 2.X版本 趋于成熟,只适用手机
  • 3.X版本 支持平板
  • 4.X版本 整合了平板和手机
  • 5.X版本 支持64位CPU,默认使用ART运行模式
  • 6.X版本 趋于成熟,电源管理优化,支持USB 3.0接口

2. Android Level

版本 代号 API Level Android 1.5 Cupcake(纸杯蛋糕) 3 Android 1.6 Donut(甜甜圈) 4 Android 2.0/2.0.1/2.1(松饼) Eclair 5、6、7 Android 2.2/2.2.1 Froyo(酸冻奶) 8、9 Android 2.3 Gingerbread(姜饼) 10 Android 3.0/3.1/3.2 Honeycomb(蜂巢) 11、12、13 Android 4.0/4.0.3 Ice Cream Sandwich(冰激凌三明治) 14、15 Android 4.1/4.2/4.3 Jelly Bean(果冻豆) 16、17、18 Android 4.4 Kikat(奇巧巧克力) 19 Android 5.0 Lollipop (棒棒糖) 20 Android 6.0 Marshmallow(棉花糖) 23

五、Android体系

这里写图片描述

1. Linux Kernel

  1. 说明:Linux内核,驱动
  2. 组成:
名称 解释 Display Driver 显示驱动 Camera Driver 相机驱动 Flash Memory Driver 闪存驱动 Keypad Driver 键盘驱动 WiFi Driver 无线网卡驱动 Audio Driver 音频驱动 Power Management 电源管理 Binder Driver 绑定驱动

2. Libraries

  1. 说明:类库层,C/C++编写的访问驱动的原生组件
  2. 组成:
名称 解释 OpenGL ES 3D 渲染引擎 Surface Manager SQLite 数据库引擎 WebKit 浏览器引擎 SGL(Skia Graphics Library) 2D图像渲染引擎 OpenCORE 多媒体引擎 SSL 互联网安全协议

3. Android Runtime

  1. 说明:Android运行时
  2. 组成:
名称 解释 Core Libraries Java核心库 Dalvik Virtual Machine DVM,因为JVM不免费

4. Application Framework

  1. 说明:应用框架层,Java写的API
  2. 组成:
名称 解释 Activity Manager 应用管理器 Windows Manager 桌面管理器 Content Providers 内容提供者 View System 视图系统 Package Manager 包管理器 TelePhony Manager 通讯管理器 Resource Manager 资源管理器 Location Manager 位置管理区 Notification Manger 通知管理器

5 .Application

  1. 说明:应用层,基于Android平台开发的应用
  2. 组成:系统应用和第三方应用

六、JVM和DVM的区别

DVM,即Dalvik Virtual Machine,是安卓虚拟机

1. 代码执行

  • JVM

.java文件–>.class文件–>.jar文件(每个class文件都有一个常量池)

  • DVM

.java文件–>.class文件–>.dex文件(所有class文件拥有公共的常量池,减少IO操作)

这里写图片描述

2. 基于架构不同

  • Java

基于栈(内存上)

  • Android

基于寄存器(CPU上)

  • ART(Android Runtime)运行模式
    • 4.4版本后出现的
    • 在安装应用程序时,自动对应用程序进行预编译,不用在每次运行时转换代码
    • 高效,省电,流畅但占内存
    • 5.0后全面使用ART虚拟机

七、搭建开发环境

1. 工具

JDK+Eclipse+ADT+Android SDK

2. SDK目录结构

目录 说明 add-ons 谷歌的额外工具(Google Map API等) build-tools 项目构建工具 (dx.bat 构建dex文件,aapt.exe 构建apk文件) docs 参考文档(中文文档参考www.android-doc.com) extras 额外的工具,比如模拟器加速器,android版本的兼容jar包 plateforms 平台,存储模拟器可使用的平台版本 plateforms-tools 平台工具(adb在windows下调试安卓设备,sqlites在windows下查看安卓的数据库) samples 学习Android的官方例子 sources 源代码 system-images cpu镜像文件 temp 临时文件 tools 第三方工具(draw9patch.bat画图,emulator模拟器控制器,ddms)

3. 创建Android模拟器

略过

4. 创建Android项目

  1. 项目结构
    • src 编写java代码
    • gen
      • BuildConfit.java是否支持debug调试
      • R.java资源的索引文件
      • android.support.v7.appcompat向下兼容的支持库
    • assets 存放比较大的资源文件
    • bin 存放class文件、dex文件和apk文件
    • libs 使用的第三方jar包
    • res 存放资源文件,存放的文件会在R文件中注册ID
      • drawable 图片资源
      • layout 布局文件
      • menu 菜单资源文件
      • values 存放字符串、尺寸和样式的资源文件
        • dimens.xml尺寸
        • strings.xml字符串
        • styles.xml样式
    • project.properties 目标版本、兼容类库和开启代码混淆功能
    • proguard-project.txt 代码混淆工具
    • AndroidManifest.xml 清单文件,所有的Activity都要在上面注册
      要在上面注册
      • Manifest
        • package:一个应用的唯一标识(应用的更新和覆盖)
        • versionCode:当前项目的版本,给Android系统看的,int值
        • versionName:当前项目的版本,给用户看的,String值
      • uses-sdk
        • minSdkVersion:最低运行的sdk版本
        • targetSdkVersion:目标sdk版本
      • application
        • icon:应用图标
        • label:应用名称
        • theme:应用主题
      • activity

八、小项目

1. 电话拨号器

  1. 核心代码
btnCall.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                String number = etPhone.getText().toString();                startActivity(new Intent().setAction(Intent.ACTION_CALL)                        .setData(Uri.parse("tel:" + number)));            }        });
  1. 使用权限
 <uses-permission android:name="android.permission.CALL_PHONE"/>

2. 短信发送器

  1. 核心代码
btnSend.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                String phone = etPhone.getText().toString();                String content = etContent.getText().toString();                SmsManager manager = SmsManager.getDefault();                manager.sendTextMessage(phone, null, content, null, null);            };});
  1. 使用权限
<uses-permission android:name="android.permission.SEND_SMS"/>
2 0
原创粉丝点击