Android

概述Android

Android是google开发的基于的linux内核的、开源的、智能移动设备上的操作系统平台,Android包括操作系统、中间件和应用程序,由于开源所以可以被移植到不同的硬件平台上

是由Andy Rubin创立的手机操作系统,目标在于建立一个标准化的免费的移动电话软件平台

是由Google和OHA开放手机联盟共同开发和维护的

是通过Java虚拟机(优化,不是严格意义上的JVM)来执行,并且需要占用大量的内存来换取执行速度,再加上不定期的内存自动回收机制

目前占全球智能手机操作系统的70%左右的份额

Android应用场景

围绕Android系统形成了移植开发和上层应用开发两个不同的开发方面。适合通过软硬件结合创新设计
开发人员的收益:1、出售应用下载,和Google分成。2、程序中内嵌广告,每千次点击收费。
开发人员销售的市场Google提供的Android Market,2012年更名为Google Play Store
开发方向:1、HAL层开发,不要求开源。2、Android系统软硬件结合,进行应用创意的开发。3、编写主动型API。4、设计云计算中的专卖连锁店

Android开发特点

1、4大组件:活动Activity、服务Service、广播接收者Broadcast Receiver和内容提供者Content Provider
2、丰富的系统空间,方便用户自定义界面的开发
3、SQLite是Android系统自带的轻量级、速度很快的嵌入式关系型数据库管理系统
4、强大的多媒体服务,例如音乐、录音、拍照等
5、地理位置服务,内嵌的GPS
6、权限保护,可以用于保护用户的个人隐私,应用必须请求权限才能访问敏感的用户信息和数据
7、Google提供了一套Java核心包的有限子集,并且不承诺遵守Java的编程规范,可能会导致Java阵营的分裂

Android系统的架构

Android采用4层的分层架构,实现了分散关注的思想
在这里插入图片描述

Linux内核层是由C语言实现的,主要提供Android设备的各种硬件驱动
系统运行库层通过C/C++库为Android系统提供主要的核心功能,同时提供了Android运行时环境
应用框架层是通过Java语言实现的,主要提供了构建应用时的可能会用到的各种API
应用层是通过Java语言实现的,是安装在手机上的应用程序

Android启动流程:1、init进程启动。2、System Server启动。3、Android系统服务启动,将各种服务注册到Service Manager中。4、Android运行时环境的创建,并且启动Launcher中的应用

Android应用内容

Android应用一般采用Java编写,通过打包工具将应用和所需的数据资源打包成一个apk的应用资源包文件,可以使用工具将其安装在移动设备上。在Android系统中每个apk文件都可以看做一个具体应用
基本设计规则:
1、默认每个应用都运行在自己的Linux进程空间中,当前系统资源不足时,系统会自动终止该进程
2、每个进程都有自己的虚拟机,应用之间相互隔离
3、每个应用都分配一个唯一的Linux用户ID,拥有相同ID的应用运行在相同的Linux进程中,共享一个虚拟机

Activity

Activity提供给用户执行操作的客户化用户界面,充当UI组件的容器,好看是最基本的要求,大多数应用中至少会包含一个Activity,多个Activity保持相互独立

Service

Service是一套适合在后台长期运行,但是没有可视化接口的应用。Service运行于应用进程的主线程中,不会受到其它组件的任何干扰。经常会派生新线程用于指定比较耗时的操作

Broadcast Receiver

Broadcast Receiver是用于接收广播通知信息处理的组件,广播可以来源于系统事件,也可以使用编程实现的广播告知

ContentProvider

内容提供之实现了一组方法,从而实现让不同应用之间可以相互保存或者读取彼此内容。当然也允许实现自己的内容提供者,这些数据可以存储在文件系统中或者使用SQLite保存数据

Android发展史

Android系统最早是由andy rubin为主开发的,主要支持手机
2005年由Google注资收购
2007年成立OHA
2008年第一部手机发布,首次超过塞班

Android5是版本改动最大的一次,使用ART替代了Dalvik虚拟机,提升应用的运行速度,同时提出了新概念用于优化应用的界面设计

搭建IDE环境

常见的IDE有官方推荐的Android Studio和Eclipse+ADT。ADT开发方式google已经宣布不再更新
先下载对应的Android SDK后再安装IDE,其中下载SDK的步骤不是必须的。也可以先安装Android Studio,然后通过Android Studio自动下载SDK
SDK开发环境使用预编译的内核和文件系统,屏蔽了Android软件架构第三层以下的内容,可以者主要基于Android的系统API进行应用层的开发。如果需要开发底层的内容,则可以使用NDK
JDK1.7+,系统内存最好不少于8GB
官方帮助文档 https://developer.android.google.cn

AS是Google推荐的Android应用开发IDE,下载路径http://www.android-studio.org/
注意在安装选择安装位置时不要使用特殊符号,例如中文、空格等
一般下载时间都比较长,所以保持网络畅通,并耐心等待
提供的平台有3个:Windows、Linux和Mac OS

Android SDK安装

使用提供的SDK的压缩包,进行解压后使用,可以通过SDK Manager.exe针对SDK的版本提供支持
注意不要讲SDK安装在C盘上,因为可能至少需要30G左右的空间

相关的目录结构

add-ons附加的包
docs是html格式的离线文档
platforms是sdk的核心内容,其中主要包含各个SDK版本的信息,例如系统映像、工具、实例代码等
tools特定平台的开发
data包含默认字体、资源等
images是模拟器的磁盘镜像
samples样例代码
skins仿真器的皮肤,每个皮肤对应一个屏幕尺寸
android.jar是Android库文件的Java程序包,在编译代码会被使用

AS的安装

使用提供的AS的压缩包,解压后直接可以使用。也可以通过官方网站下载安装https://developer.android.google.cn/studio/
Android应用开发中必须有对应的运行平台,可以使用实体机或者模拟器运行,目前一般来说因为启动速度问题建议创建x86结构的模拟器

Hello Android

Android应用属于应用层,构建在Android系统所提供的API之上。每个Android平台对应支持一个API级别,会隐含对所有早期API的支持
用户开发的应用和Android内置的应用层属于同一个层次,调用API的方式相同,只是是否被包含在默认的Android系统
1、创建项目
注意事项:1、工程名中不能含有特殊符号,例如中文和空格。2、变量、方法、类名称不要取中文名称。3、应用的包名称事先需要考虑好,因为android系统是通过包名称来区分不同的应用的,所以包名称必须具备唯一性。实际上事后可以修改
2、项目的目录树结构
项目管理的显示方式的选择,默认采用的是android显示风格
在这里插入图片描述

对应的显示内容
在这里插入图片描述

app应用相关的内容都在这里
Mainifest/AndroidManifest.xml是应用的清单文件,其中包含应用的配置信息
java存放项目相关的java源程序
包名称后没有任何内容就是源程序,如果有提示信息test则是测试程序,一般用于业务逻辑的验证代码,如果有提示信息AndroidTest则是Android的测试程序,一般用于android相关组件测试
res存放项目相关的静态资源文件,例如图片、声音等
drawable用于存放图片,layout用于存放界面的定义,mipmap主要用于存放具有三维效果的图标,values用于存放常量配置
Gradle scripts主要用于存放gradle相关的脚本程序,通过脚本可以实现打包
Gradle是一个被android所采用的主要面向Java的项目构建系统,可以将Android项目构建编译成一个可安装的APK包,然后在具体的设备上进行安装

Activity

Activity主要用于实现提供给用户的UI界面,并针对用户的动作提供对应的处理

public class MainActivity extends AppCompatActivity {
   //onCreate方法时在activity初始化的时候自动调用的,当窗口从无到有时第一次创建activity对象时自动回调,主要功能为这个activity启动时进行一些必要的初始化工作。
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//setContentView方法用于加载对应的UI定义文件,位于res/layout/目录下的activity_main.xml文件。可以打开这个布局文件在Preview视图中查看预览效果
    }
}

注意:在一个activity真正启动之前任何耗时的操作导致activity启动缓慢,尤其是在onCreate方法中调用耗时操作可能会导致非常差的用户体验

资源文件activity_main.xml

双击资源文件,查看窗口
在这里插入图片描述

其中code表示显示代码,split切分窗口,同时显示预览效果和代码,design用于可视化的开发,所见即所得

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 定义所使用的布局管理器组件     android:layout_width="match_parent" 设置宽度上自动匹配父窗口
    android:layout_height="match_parent"  高度设置
    tools:context=".MainActivity">  设置对应的关联java类
    <TextView 对应一个用于显示文本信息的文本视图组件
        android:layout_width="wrap_content"  设置在组件的宽度
        android:layout_height="wrap_content"
        android:text="Hello World!"  设置组件上显示的具体具体文本信息内容,可以进行调整
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

启动运行app

运行的载体是Android的手机(真实设备)或者使用模拟器(虚拟设备),这两种方式都可以运行,没有什么本质区别。
真实设备:将android手机通过USB接口连接到开发的PC机上,需要在手机上打开开发者选项中允许USB安装应用
如果没有真实设备或者真机的系统版本太低,可以使用Android虚拟机。SDK安装目录下的AVD Manager.exe可以对虚拟机进行管理,也可以通过AS中提供的工具进行虚拟机的创建和管理
在这里插入图片描述

配置好虚拟机后则可以启动查看效果。
在这里插入图片描述

可以在WeiGe这个下拉选择器中选择对应的设备
点击绿色的三角则可以运行应用。需要时间较长,请等待
如果编译安装完成没有报错信息,则虚拟机器自动会启动所开发的应用

点击虚拟机右侧的圆圈符号,则可以系统的启动器,这里看到刚才安转的应用

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值