星空网 > 软件开发 > 操作系统

Android学习一(入门)

一、Android 系统简介

1.1、1G-4G

1G:模拟制式手机,1995年问世的第一代模拟制式手机,只能进行语音通话,

2G:手机使用GSM,CDMA(9K/s),增加了接收数据的功能

2.5G:EDGE (172k/s)

3G:第三代数字通讯技术(3rd, Generation),

     电国电信:CDMA2000,(日,韩和北美)

     中国联通:WCDMA(世界上大部分3G网络都采用)

     中国移动:TD-SCDMA(中国)

4G:LTE,长期演进.该技术包括 TD-LTE 和 FDD-LTE 两种制式。4G 是集 3G 与 WLAN 于一体,并能够传输高质
量视频图像

GSM->GPRS->EDGE->WCDMA->HSDPA-FDD-LTE长期演进

9k           42k       172k     364k          7.2M    300M    

 

1.2、Adnroid由来

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

2005 年由 Google 收购注资,并组建开放手机联盟。2007 年 11 月 12 日,Android Beta
操作系统 SDK 正式发布。

1.3、进化史

Android学习一(入门)images/loading.gif' data-original="http://images2015.cnblogs.com/blog/710715/201511/710715-20151116104058921-1731343710.jpg" />

1.4、Android 系统架构

Android学习一(入门)

android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。

1.Applications:提供了一些系统级的应用程序如:浏览器,电话本,email,拔号器等

2.Application Framwork:应用程序框架

 

  • 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。
  • 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据
  • 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。
  • 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
  • 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

3.库系统运行库

  •  libc:系统 C 库,基于 embedded linux 的设备定制的
  • Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。界面管理
  • Media Framework:媒体框架库
  • SQLite:个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎
  • OpenGL|ES:3D效果渲染,可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速
  •  FreeType -位图(bitmap)和矢量(vector)字体显示
  • WebKit- 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图
  • SSL:关于安全的部分
  • SGL - 底层的2D图形引擎

Android 运行库

Core Library:Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能

Dalvik虚拟机:依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 "dx" 工具转化成.dex格式由虚拟机执行。

 

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

1.4、JVM与Dalvik虚拟机的区别

  • Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短
  • VM字节码由.class文件组成,每个文件一个class。JVM在运行的时候为每一个类装载字节码。相反的,Dalvik程序只包含一个.dex文件,这个文件包含了程序中所有的类。Java编译器创建了JVM字节码之后,Dalvik的dx编译器删除.class文件,重新把它们编译成Dalvik字节码,然后把它们写进一个.dex文件中

Android学习一(入门)

二、SDK的下载与安装

2.1、开发环境

目前主流的开发工具有两个,一个是 Eclipse 另外一个是 Android Studio。 Eclipse 需要和 ADT(Android
Develop Tool)插件整合后才能使用,不过 Google 官方已经直接提供了 Eclipse 和 ADT 集成好的开发工具,
叫 ADT-Bundle。
Android Studio 是 Google 基于 IntelliJ IDEA 开发的 Android 集成开发工具,目前国内使用该开发工具
的企业也越来越多。Android 基础阶段我们依然使用 Eclipse 作为开发工具,在后面的课程中才会使用到
Android Studio。

2.2、ADT-Bundle 的下载和安装

第一步:JDK 的安装:
官方下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.htmle
下载好以后安装,并配置系统环境变量,这里就不再赘述。
第二步:下载 ADT-Bundle for Windows
官方下载地址:http://developer.android.com/sdk/index.html
由于该网址在国内已经被屏蔽掉了,因此本人提供了一个百度网盘的下载地址。
网盘下载地址:http://pan.baidu.com/s/1gdwIAER
第三步:安装 ADT-Bundle
直接把下载下来的 adt-bundle-windows-xxx-xxx.zip 解压到需要安装的位置

2.3、SDK 目录结构

将下载好的 ADT-Bundle 解压后根目录结构如图 1-2 所示,总共包括 3 个部分,eclipse、sdk、SDK
Manager.exe。

Android学习一(入门)

Android学习一(入门)

 

1、add-ons 这里面保存着附加库,比如 GoogleMaps,当然你如果安装了 OphoneSDK,这里也会有一
些类库在里面;
2、build-tools 这里保存着与编译相关的重要工具,比如 aapt、aidl、逆向调试工具 dexdump 和编译脚
本 dx,

3、docs 这里面是 Android SDKAPI 参考文档,所有的 API 都可以在这里查到;
4、extras 拓展开发包,这里面包括下向下兼容开发包以及 Intel 硬件加速程序等;
5、 platforms是每个平台的 SDK 真正的文件, 里面会根据 API Level 划分 SDK 版本, 这里就以 Android2.3
来说,进入后有 一个 android-10 的文件夹,android-10 进入后是 Android2.3 SDK 的主要文件,其中 data
保存着一些系统资源,images 是模拟器映像文件,skins 则是 Android 模拟器的皮肤,templates 是工程创建
的默认模板,android.jar 则是该版本的主要 framework 文件;

6、platform-tools 保存着一些通用工具,比如 adb.exe;
7、sources Android 系统源码目录,文件夹里可以包含多份源码,根据 API Level 划分为不同的文件夹;
8、system-images Android 系统镜像文件;
9、 tools 这里包含了重要的工具,比如 ddms 用于启动 Android 调试工具,draw9patch 则是绘制 android
平台的可缩放 png 图片的工具,sqlite3 可以在 PC 上操作 SQLite 数据库,emulator 是 Android SDK 模拟器
主程序,traceview 作为 android 平台上重要的调试工具;

 

2.4、SDK Manager

SDK Manager.exe 是 ADT 根目录下的一个 SDK 管理程序,该程序负责下载、更新、删除与 sdk 相关
的文件

Android学习一(入门)

该管理器主要分为以下几部分:
1、Tools 又分为 Android SDK Tools、Android SDK Platform-tools、Android SDK Build-tools。分别对
应 sdk 目录中的 tools、platform-tools、build-tools 三个目录。其中的 Rev. 代表版本号,Status 代表状态。
2、 Android x.x.x(API xx) 一般会有多个,一个 API 就有一个条目。该条目下分为 SDK Platform、 System
Image、Sources for Android SDK。分别对应 sdk 目录中的 platforms、system-images、sources 目录。
3、Extras 主要分为 Android Support Library 和 HAXM(Inter x86 模拟器加速器),对应 sdk 目录中的tools 文件。
由于 SDK Manager 需要通过连接国外互联网才可以对 sdk 进行升级管理,但是国内是被屏蔽了的,因
此大家可以直击从网站上下载现成的 sdk 文件,然后放到相应的目录下,这样就不需要 SDK Manager 进行
额外的管理工作。

2.5、AVD的创建与使用

 Android学习一(入门)

上面的各个选项介绍如下:
1、AVD name 自定义的模拟器名称,建议见名知意的命名原则;
2、Device 选择设备屏幕分辨率;
3、Target 选择 Android 操作系统版本;
4、CPU/ABI 选择 CPU 架构。只有 x86 的才支持硬件加速。
5、Keyboard 勾选上后可以使用自己电脑键盘作为模拟器的键盘,不勾选的话默认使用模拟器键盘;
6、Skin 勾选上后显示模拟器实体按键,不勾选没有实体按键,建议勾选上;
7、Front Camera 选择前置摄像头设备,不用选;
8、Back Camera 选择后置摄像头设备,不用选;
9、Memory Options RAM 代表模拟器运行内存,VM Heap Dalvik 虚拟机堆内存大小,不建议改动;
10、Internal Storage 模拟器内置存储大小;
11、SD Card Size 设置 SDCard 的大小;
12、Emulation Options 模拟器选项,Snapshot 如果被勾选了,模拟器被关闭时相当于是使用了休眠的形式;
下次开启时会重新恢复到关机前状态,不建议勾选。User Host GPU,勾选上代表使用电脑提供图形处理;
一般如果我们的应用不涉及 3D 图像处理不需要勾选,甚至在有些电脑上勾选后反而导致模拟器无法运行。
当我们创建好模拟器之后,如果需要修改那么可以在图 1-7 中选中要修改的虚拟机,然后点击 Edit...,
如果需要删除,点击 Delete...,如果需要启动点击 Start...

Android学习一(入门)

 

在上图界面中有两个比较重要的选项。Scale display to real size 和 Wipe user data。后者很好理解,如果
勾选上了,那么启动时相当于恢复出厂设置。前者用的比较多,是用来缩放我们的模拟器界面的,如果不
勾选的话屏幕会显示模拟器的真实大小,肯能会占据我们的整个屏幕,因此可以选择勾选,然后将 Screen
Size 改为 6

点击 Launch,就开始启动模拟器,如果没有硬件加速可能需要 3 到 5 分钟的时间。

Android学习一(入门)

 

2.6、DDMS 简介

DDMS 是 Dalvik Debug Monitor Service 的简称。DDMS 为 IDE 和 emulator 以及 Android 真机架起来
了一座桥梁。开发人员可以通过 DDMS 看到目标机器上运行的进程/线程状态,可以看进程的 heap 信息,
可以查看 logcat 信息,可以查看进程分配内存情况,可以向目标机发送短信以及打电话,可以向 Android
发送地理位置信息。下面以 Eclipse 的 DDMS perspective 为例简单介绍 DDMS 的功能

Android学习一(入门)

左上部分为 Devices 窗口,列出了所有已经跟 adb 成功连接的模拟器(包括真机)以及各个模拟器中
所有运行的进程。如图 1-12 所示,最上面一排从左到右一共有 9 个可用按钮,分别为: 调试某个进程,
更新进程堆栈信息, 下载进程堆栈数据到本地, 调用垃圾回收器, 更新线程, 开启方法性
能分析数据收集, 停止某个进程, 抓取 Android 目前的屏幕, 查看当前界面视图树结构。

 

 

三、Android 程序入门

3.1、创建Helloworld

点击 ADT 左上角的 File 按钮,然后选择 New,然后点击 Android Application Project开
始 Android 工程的创建。(或者鼠标右击,在弹出的快捷菜单中创建也可以)。

Android学习一(入门)

 

 

Android学习一(入门)

Android学习一(入门)

该界面展示了是否创建图标,是否创建 activity,是否将该工程作为库工程,是否将
该工程添加到当前工作空间,是否将该工程添加到指定工作集等信息,通常情况下不需要我们修改默认的
配置,直接 Next 就行。

Android学习一(入门)

该界面提供了配置图标选项, 我们通过点击 Browser 按钮可以选择我们个性化的图标。
在学习阶段不需要使用,然后点击 Next...。

Android学习一(入门)

该向导界面可以让我们选择创建一个什么样式的 Activity,一般使用系统默认的 Blank
Activity 即可,然后点击 Next...。

Android学习一(入门)

这是最后一个向导界面了。 Activity Name 和 Layout Name 分别是让我们设置主 Activity
和其布局的名字,通常情况下使用默认名字即可。Navigation Type 是主界面 Activity 切换类型,使用 None
即可。然后点击 Finish 完成 Android 工程的创建。

四、Android 工程目录结构

4.1、结构

Android学习一(入门)

4.2、目录简述

1、src java 源代码存放目录。
2、gen 自动生成的目录
gen 目录中存放所有由 Android 开发工具自动生成的文件。目录中最重要的就是 R.java 文件。 这
个文件由 Android 开发工具自动产生的。Android 开发工具会自动根据你放入 res 目录的资源,同步更
新修改 R.java 文件。正因为 R.java 文件是由开发工具自动生成的,所以我们应避免手工修改 R.java。
另外编绎器也会检查 R.java 列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这
样可以减少应用在手机占用的空间。
3、bin 用于存放 ADT 编译时产生的临时文件, Android 工程最终会被打包成一个 xxx.apk
4、res 资源(Resource)目录
在这个目录中我们可以存放各种各样的资源,如 子目录。
4.1、res/drawable
存放 png、jpg 等图标文件。在代码中使用 getResources().getDrawable(resourceId)获取该目录下的
资源。
4.2、res/layout
存放

4.3、res/values
存放应用使用到的各种类型数据。不同类型的数据存放在不同的文件中。比如:
4.3.1 strings.4.3.2 colors.4.3.3 dimens.4.3.4 styles.4.4、res/anim/
存放自定义动画的 4.5 res/在 Activity 中使用 getResources().get4.6 res/raw/
该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,它
们被直接加入到程序安装包里。
5、libs 支持库目录
程序开发时需要的一些三方的 jar 包可以放在这个目录,通常系统会自动把里面的 jar 包,添加到环境
变量,如果自动添加不了那么就需要手动添加。

6、assets 资源目录
Android 除了提供 res 资源文件外,在 assets 目录中可以存放资源文件,而且 assets 目录下的资源文件
不会在 R.java 中自动生成 id。
7、AndroidManifest.该文件用于配置四大组件、声明权限、配置应用版本等参数。
8、project.properties 项目环境信息,一般是不需要修改此文件。
9、proguard-project.txt 用于配置代码混淆参数。

4.3、运行

Android学习一(入门)

Android学习一(入门)

4.4、打包过程

ADT 将 Android 工程编译成 APK 中间经历了一系列过程,
 Android 打包过程

Android学习一(入门)
ADT 将 Java 源文件编译成.class,然后调用 dx 工具将所有的.class 抽取到一个叫 classes.dex 的文件中。
然后调用 aapt 工具将 Android 中所有的资源,包括 res 和 assets 资源以及清单文件一起打包成 apk 文件,
然后在部署的时候给 apk 进行签名操作,最后通过 ADB 工具将签名后的 APK 部署到模拟器上。
上面的过程完全是 ADT 自动帮我们完成的。签名是用于区分同一包名的时候应用身份的,也就是如
果应用的包名相同签名不一样是不可以安装到同一个手机上的,如果包名相同签名也相同则可以覆盖安
装。

五、ADB 简介

5.1、ADB 介绍

adb 是 Android Debug Bridge 的简称,通过 adb 可以在 Eclipse 中通过 DDMS 来调试 Android 程序, adb
启动时会占用 5554 端口,因此要避免其他应用跟该端口冲突。默认情况下所以当我们运行 Eclipse 时 adb
进程就会自动运行。
adb 还可以通过命令行使用,前提是将 adb.exe 所在路径已经配置到了系统环境变量。adb.exe 位于sdk/platform-tools 目录下。环境变量的配置跟 JDK 相似,

5.2、ADB 常用命令

1、adb devices 列出当前连接上所有设备

Android学习一(入门)
2、adb install xxx.apk 将 xxx.apk 安装到模拟器上

Android学习一(入门)

多个设备连接时,选择设备安装

Android学习一(入门)
3、adb uninstall 包名 卸载应用

Android学习一(入门)

多个设备连接卸载

Android学习一(入门)


4、adb push <本地路径><远程路径> 将本地文件上传到模拟器上

Android学习一(入门)
5、adb pull <远程路径><本地路径> 将模拟器上文件下载到本地

Android学习一(入门)
6、adb kill-server 杀死 adb 进程

Android学习一(入门)
7、adb start-server 启动 adb 进程

Android学习一(入门)
8、adb shell 进入 Linux shell 命令行

 Android学习一(入门)




原标题:Android学习一(入门)

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

越来越多的Lazada卖家开始做本土店,跨境店铺何去何从?:https://www.goluckyvip.com/news/3360.html
Shopee开店后的问题解答:https://www.goluckyvip.com/news/3361.html
比尔盖茨回应微软收购TikTok,亚马逊接受反垄断调查:https://www.goluckyvip.com/news/3362.html
SHEIN为什么能在英国Z世代群体大火?因为TikTok玩得很溜:https://www.goluckyvip.com/news/3363.html
后疫情时代,东南亚消费趋势分析:https://www.goluckyvip.com/news/3364.html
Shopee的最强市场分析,你了解到几分?:https://www.goluckyvip.com/news/3365.html
别犹豫了,品牌种草营销就是现在!:https://www.kjdsnews.com/a/1836479.html
安能物流的2024:变革不能停:https://www.kjdsnews.com/a/1836480.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流