什么是Android

Android是基于Linux内核开发、主要以Java为开发语言的一个开源的操作系统,主要用于移动设备,如智能手机和平板电脑、可穿戴设备等,当然还有更多的领域使用到了Android系统,例如电视、机顶盒等
为什么选用Linux内核

Android的历史

android基于 Android基于linux哪个版本_API

Android的架构

 1.Linux内核层

android系统是基于Linux内核的,这一层为android设备的各种硬件提供了底层的驱动,如:显示驱动,音频驱动,照相机驱动等。

2.系统运行库层

这一层通过一些 C/C ++库来为 Android 系统提供了主要的特性支持。如 SQLite 库提供了数据库的支持。 openGL/ES库提供3D绘图的支持

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

3.引用框架层

这层主要提供了构建应用程序时可能用到的各种 API . Android 自带的一些核心应用就是用这些 API 完成的,开发者也可以通过使用这些API构建自己的应用程序。

4.应用层

所有安装在手机上的应用程序都是属于这一层的。比如系统自带的联系人、短信等程序。当然包括我们开发的程序

Android 版本

https://zhuanlan.zhihu.com/p/52850126

Android系统提供了哪些东西给developer? 

四大组件

  • Activity 活动

        Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。 Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。 在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。

  • Service  

       服务是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信 (IPC)。例如,服务可在后台处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序进行交互。

  • Broadcast Receiver广播接收器

       广播是一个全局的监听器,广播分为两个角色:广播发送者、广播接收者android广播机制就是在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。

  • 内容提供器

       用于在不同的程序之间共享数据,即将一些数据共享给他应用,这些数据是一些可以进行二次开发的基础数据,例如:电话簿、短信、多媒体等的数据,他们都实现了跨程序数据共享的功能

 丰富的系统组件

       Android为开发者提供了丰富的系统组件,可以帮助开发者设计出漂亮的界面,当然,随着也可以定制属于自己的控件。

SQLite 数据库

        Andrid 自带的数据库,支持SQL语法,也有封装好的API,存储和读取非常方便。(在这加代码,记住用户名和密码)

强大的多媒体

音乐、视频、录音、拍照等,可以用代码进行控制。

地理位置定位

移动设备相对于PC,地理定位功能应该可以算是一个很大的亮点,结合强大的地图功能,LBS 这一领域潜力非常大。例如外卖、打车、团购、社交、侦查等。

 环境搭建

1.开发工具 以前是用Eclipse 现在推荐Android studio。Android Studio是基于Intellij IDEA开发的,插件安装非常简单,还集成了很多工具。

2.JDK java开发环境

3.Android SDK 谷歌提供的Android开发工具包。在开发时我们需要引入该工具包来使用相关API

Hello World项目的分析

  • 分析Hello World案例
  • 项目结构分析
  • Android Studio使用

详细介绍

UI开发

  1. 如何编写程序界面
  2. 常用控件的使用
    2.1 TextView
    2.2 Button
    2.3 EditView
    2.4 ImageView
    2.5 ListView
    2.6 …
  3. 4种基本布局
    3.1 线性
    3.2 相对
    3.3 帧布局
    3.4 百分比布局

 网络

  • 子线程

         将耗时的操作放到子线程中去,这里就需要用到java的多线程操作        

  • 更新UI 

         不允许在子线程中更新UI,因为UI是线程不安全的,必须在主线程中更新,否则会异常。

  • 异步消息处理机制

         

android基于 Android基于linux哪个版本_Android_02

 权限

       

应用上线

        Android系统要求所有的应用软件必须有一个签名文件,直接通过AS运行程序会使用一个默认的签名文件(仅仅适用于开发阶段)

1.AS生成签名

android基于 Android基于linux哪个版本_android_03

 2.使用签名打包

Gradle中使用

android基于 Android基于linux哪个版本_开发者_04

build中打包,会生成一个.apk的文件这个就是我们的安装包

android基于 Android基于linux哪个版本_开发者_05

 

android基于 Android基于linux哪个版本_Android_06