1、Android概述

Android 是一个开源的,基于 Linux 的移动设备操作系统。

Android开发优势

开放源代码

众多开发者及强大的社区

不断增长的市场

国际化的App集成

低廉的开发成本

更高的成功几率

丰富的开发环境

Android应用程序

Android 应用程序一般使用 Android 软件开发工具包,采用 Java 语言来开发。

Android API

先解释一下API (Applicants Programming Interface),就像我们去餐厅吃饭,我们点好菜之后,api就像服务生,将我们的菜单交给厨房制作,厨房做好之后,把菜送回我们的餐桌。重点理解接口Interface。

API 级别是一个用于唯一标识 API 框架版本的整数,由某个版本的 Android 平台提供。

Android 平台提供一种框架 API,应用可利用它与底层 Android 系统进行交互。该框架 API 由以下部分组成:

  • 核心软件包和类
  • 一组用于声明清单文件的 XML 元素和属性
  • 一组用于声明和访问资源的 XML 元素和属性
  • 一组 Intent
  • 一组应用可请求的权限,以及系统中包括的权限强制执行

新 API 与早期版本的 API 会保持兼容。换言之,大多数 API 更改都是新增更改,并且会引入新功能或替代功能。

2、Android开发环境的搭建

jdk1.5以上

Android Studio

3、Android架构

Android 操作系统是一个软件组件的栈,在架构图中它大致可以分为五个部分和四个主要层。

Linux内核

在所有层的最底下是 Linux - 包括大约115个补丁的 Linux 3.6。它提供了基本的系统功能,比如进程管理,内存管理,设备管理(如摄像头,键盘,显示器)。同时,内核处理所有 Linux 所擅长的工作,如网络和大量的设备驱动,从而避免兼容大量外围硬件接口带来的不便。

程序库

在 Linux 内核层的上面是一系列程序库的集合,包括开源的 Web 浏览器引擎 Webkit ,知名的 libc 库,用于仓库存储和应用数据共享的 SQLite 数据库,用于播放、录制音视频的库,用于网络安全的 SSL 库等。

SQLite

SQLite是一款非常轻量级的关系数据库系统。一般只需要带上一个dll,就可以使用它的全部功能。

SQLite的主要应用场景有作为手机应用的数据库以及小型桌面软件的数据库。

DLL

DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是一种软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。

SSL

SSL (Secure Sockets Layer)安全套接层。SSL是一个不依赖于平台和运用程序的协议,位于TCP/IP协议与各种应用层协议之间,为数据通信提高安全支持。

Android程序库

这个类别包括了专门为 Android 开发的基于 Java 的程序库(还有其他语言的库,比如C/C++)。这个类别程序库的示例包括应用程序框架库,如用户界面构建,图形绘制和数据库访问。一些 Android 开发者可用的 Android 核心程序库总结如下:

  • android.app - 提供应用程序模型的访问,是所有 Android 应用程序的基石。
  • android.content - 方便应用程序之间,应用程序组件之间的内容访问,发布,消息传递。
  • android.database - 用于访问内容提供者发布的数据,包含 SQLite 数据库管理类。
  • android.opengl - OpenGL ES 3D 图片渲染 API 的 Java 接口。
  • android.os - 提供应用程序访问标注操作系统服务的能力,包括消息,系统服务和进程间通信。
  • android.text - 在设备显示上渲染和操作文本。
  • android.view - 应用程序用户界面的基础构建块。
  • android.widget - 丰富的预置用户界面组件集合,包括按钮,标签,列表,布局管理,单选按钮等。
  • android.webkit - 一系列类的集合,允许为应用程序提供内建的 Web 浏览能力。

Android运行时

这是架构中的第三部分,自下而上的第二层。这个部分提供名为 Dalvik 虚拟机的关键组件,类似于 Java 虚拟机,但专门为 Android 设计和优化。

Dalvik 虚拟机使得可以在 Java 中使用 Linux 核心功能,如内存管理和多线程。Dalvik 虚拟机使得每一个 Android 应用程序运行在自己独立的虚拟机进程。

应用框架

应用框架层以 Java 类的形式为应用程序提供许多高级的服务。应用程序开发者被允许在应用中使用这些服务。

  • 活动管理者 - 控制应用程序生命周期和活动栈的所有方面。
  • 内容提供者 - 允许应用程序之间发布和分享数据。
  • 资源管理器 - 提供对非代码嵌入资源的访问,如字符串,颜色设置和用户界面布局。
  • 通知管理器 - 允许应用程序显示对话框或者通知给用户。
  • 视图系统 - 一个可扩展的视图集合,用于创建应用程序用户界面。

4、Android应用程序组件

应用程序组件是一个Android应用程序的基本构建块。这些组件由应用清单文件松耦合的组织。AndroidManifest.xml描述了应用程序的每个组件,以及他们如何交互。以下是可以在Android应用程序中使用的四个主要组件。

Activities

描述UI,并且处理用户与机器屏幕的交互。一个活动标识一个具有用户界面的单一屏幕。例如,一个邮件应用程序可以包含一个活动用于显示新邮件列表,另一个活动用来编写邮件,再一个活动来阅读邮件。当应用程序拥有多于一个活动,其中的一个会被标记为当应用程序启动的时候显示。

Services

处理与应用程序关联的后台操作。服务是运行在后台,执行长时间操作的组件。例如,服务可以是用户在使用不同的程序时在后台播放音乐,或者在活动中通过网络获取数据但不阻塞用户交互。

Broadcast Receivers

处理Android操作系统和应用程序之间的通信。广播接收器简单地响应从其他应用程序或者系统发来的广播消息。例如,应用程序可以发起广播来让其他应用程序知道一些数据已经被下载到设备,并且可以供他们使用。因此广播接收器会拦截这些通信并采取适当的行动。

Content Providers

处理数据和数据库管理方面的问题。内容提供者组件通过请求从一个应用程序到另一个应用程序提供数据。这些数据可以是存储在文件系统、数据库或者其他其他地方。

其他的组件

组件名称 描述
Fragments 代表活动中的一个行为或者一部分用户界面。
Views 绘制在屏幕上的UI元素,包括按钮,列表等。
Layouts 控制屏幕格式,展示视图外观的View的继承。
Intents 组件间的消息连线。
Resources 外部元素,例如字符串资源、常量资源及图片资源等。
Manifest 应用程序的配置文件。

5、Android程序的结构

文件目录分析

文件夹、文件 说明
src 包含项目中所有的.java源文件,默认情况下,它包括一个 MainActivity.java源文件对应的活动类,当应用程序通过应用图标启动时,将运行它。
gen 这包含由编译器生成的.R文件,引用了所有项目中的资源。该文件不能被修改。
bin 这个文件夹包含Android由APT构建的.apk包文件,以及运行Android应用程序所需要的其他所有东西。
res/drawable-hdpi 这个目录下包括所有的为高密度屏幕设计所需的drawable对象。
res/layout 这个目录存放用于定义用户界面的文件。
res/values

这个目录存放各种各样的包含一系列资源的XML文件,比如字符串和颜色的定义。

res/menu 定义应用程序菜单的XML文件,如选项菜单,上下文菜单,子菜单等。它们被保存在res/menu/文件夹下,通过R.menu类访问
res/drawable 图片文件,如.png,.jpg,.gif或者XML文件,被编译为位图、状态列表、形状、动画图片。它们被保存在res/drawable/文件夹下,通过R.drawable类访问
AndroidManifest.xml 这个是应用程序的清单文件,描述了应用程序的基础特性,定义它的各种组件。
local.properties         指定安卓程序所使用的SDK路径。

资源的使用

在Activity中可以通过getResources().getDrawable方法调用图片资源。

//调用以mipmap开头的文件夹中的资源文件
getResources().getDrawable(R.mipmap.ic_launcher);  //调用以drawable开头的文件夹中的资源文件
getResources().getDrawable(R.drawable.icon);       

在XML文件中调用图片资源

//调用以mipmap开头的文件夹中的资源文件
@mipmap/ic_launcher  //调用以drawable开头的文件夹中的资源文件
@drawable/icon       

参考文档:

Android 教程 | 菜鸟教程

如何理解API,API 是如何工作的_仁杰兄的博客-CSDN博客

安卓版本的发展4-13_Ipkiss工作室的博客-CSDN博客

SQLite 安装与使用_sqlite安装_IT小郭.的博客-CSDN博客

什么是dll_dll文件是什么_OperatorY的博客-CSDN博客

SSL协议原理详解_ssl原理_曹世宏的博客的博客-CSDN博客

紫大-安卓期末复习-2022-6_soundpool解析_Ipkiss工作室的博客-CSDN博客

理解基本的Android编程 (1/2)相关推荐

  1. 《Android编程权威指南》PhotoGallery应用梳理

    PhotoGalley是<Android编程权威指南>书中另外一个重要的应用.        github:https://github.com/xurui1995/PhotoGaller ...

  2. 《Delphi XE6 android 编程入门教程》推荐

    近5.6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本<Delphi XE6 android 编程入门教程>,上周刚拿 ...

  3. Android编程权威指南学习:Activity之间传递参数

    2019独角兽企业重金招聘Python工程师标准>>> 在Android编程中,经常会有多个Activity之间.同Activity的旋转都要进行调用,数据传递的现象.如何理解Act ...

  4. 如何自学 Android 编程-----整理stormzhang的知乎问答

    如何自学 Android 编程 14年的帖子没想到已经成为"自学Android"话题最火的帖子了,转眼间我都已经自学Android差不多4年多的时间了,评论里说文中很多博客链接打不 ...

  5. android php实战,android编程开发入门实战例子–hello word

    android开发入门实战编程例子–hello word 1.打开Eclipse,选择菜单File->New->Other,打开新建对话框.选择Android Project后,点击Nex ...

  6. android 阅读器自动滚动,Android编程实现小说阅读器滑动效果的方法

    本文实例讲述了Android编程实现小说阅读器滑动效果的方法.分享给大家供大家参考,具体如下: 看过小说都知道小说阅读器翻页有好多种效果,比如仿真翻页,滑动翻页,等等.由于某种原因,突然想写一个简单点 ...

  7. java安卓编程计算器_菜鸟学Android编程——简单计算器《一》

    菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...

  8. 《Android编程兵书》PDF版电子书下载

    点击下载: <Android编程兵书> 内容简介: 这是一本Android开发书籍,内容讲解详细,例子丰富,能帮助读者举一反三.在<Android编程兵书>中,每一个知识点的描 ...

  9. Android编程至高武学之《如来神掌》第四式~佛问迦蓝

    上回书Android编程至高武学之<如来神掌>第三式~佛动山河,初试牛刀,已经为大家九牛剃了一毛了.今天为大家带来一个比较常用的网络框架.在浩瀚的网络架构中,大家肯定已经有了选择恐惧症,不 ...

最新文章

  1. Linux Shell学习(3)
  2. 用GPUDirect RDMA技术做的代码测试
  3. SAP Spartacus CmsService.Components数据结构
  4. 【SRX】折腾了半天终于我的那对SRX210 升级到了 12.1R1.9
  5. hibernateTemplate update 修改指定字段
  6. 4月编程语言排行榜:C++ 重回前三,PHP 呈下降势头
  7. redis的内存会不会耗尽
  8. 零信任能力成熟度模型白皮书发布!内附下载资源
  9. Cocos2d-x移植Android 常见问题处理办法
  10. 信息化为五万教学点带来“优质教师”
  11. IE地址栏的最大长度
  12. Wipro任命Thierry Delaporte为首席执行官兼董事总经理
  13. 西部数据的红盘、绿盘、黑盘在物理结构和性能参数上有什么区别?
  14. Unity中实现涂鸦和橡皮擦功能
  15. 成长为 iOS 大 V 的秘密
  16. 黑盒测试用例设计--题目3
  17. Motivated Word(3)
  18. 腾讯朋友圈广告的优势有哪些?如何代理腾讯朋友圈广告?
  19. 如何查看MindSpore的IR图
  20. MFC多语言实现的两种方法

热门文章

  1. Apriori算法例题
  2. 计算机网络 - ARP协议
  3. flstudio21更新内容介绍FL水果2023旗舰版下载
  4. H3C配置多区域OSPF实验
  5. 红米note2_标注2015052_官方线刷包_救砖包_解账户锁
  6. json的格式、存储与发送以及多个Json的处理
  7. 从人生迷茫到确定方向,为什么他能做到?
  8. Java中的泛型与异常机制
  9. asp.net mvc 上传到服务器 图片不显示,ASP.NET MVC实现图片上传、图片预览显示
  10. 【转】数据仓库ODS、DW和DM概念区分