Develop系列-API Guides-简介-应用基础
应用基础
app用Java语言编写,以apk为后缀。
apk运行在自身安全的沙盒中:
- Android是多用户Linux系统,每个app就是一个不同的用户
- 默认的,系统给每个app分配唯一的Linux用户ID,并设置访问权限
- 每个进程有自己的虚拟机VM
- 默认的,每个app运行在自己的Linux进程
android系统实行最小权限原则。
然后,有两种方式可以在不同app之间共享数据或者使用系统服务:
- 两个app共享相同的Linux用户ID,他们就能互相访问各自的文件,app必须是相同签名的
- app可以申请权限去访问终端数据,比如用户联系人,短信息,SD卡,相机,蓝牙等等,所有app权限都必须在安装时由用户授权。
app组件
Activities
呈现单屏UI界面
Services
长时间在后台运行,无界面
Content providers
管理共享的app数据集,存储方式包括文件系统、SQLite数据库、Web或者app能够访问的任意存储位置
Broadcast receivers
广播响应全系统的广播通知,无界面,可以创建状态栏的通知
启动组件
Intent
startActivity()
, startActivityForResult()
startService()
, bindService()
sendBroadcast()
, sendOrderedBroadcast()
, sendStickyBroadcast()
ContentResolver.
query()
Manifest文件
定义组件
<activity>
<service>
<receiver>
<provider>
activity, service, content provider 必须是在manifest里面静态注册,而broadcast可以动态注册
定义组件能力
显式指定组件类名来启动,或者隐式地通过intent filter来定义
定义app依赖项
Android终端众多,为了保证app能够在任意终端运行,需要定义app依赖运行的软硬件条件,比如,你的app需要照相功能并且运行在Android2.1(API LEVEL 7)版本之上,你需要定义如下依赖项:
<manifest ... ><uses-feature android:name="android.hardware.camera.any"android:required="true" /><uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19" />... </manifest>
这样Google Play检测到当前设备没有照相功能或者Android版本低于2.1就不能安装你的应用。
如果你的app要用到照相功能,但不是必须使用,那可以将android:required设置为false,然后在运行时动态检查设备是否具有照相功能,来兼容不同的设备。
app资源
任何一个非代码的资源文件,SDK编译工具会定义一个唯一的整型ID,这样能够被代码或其他资源索引到。
资源文件夹支持多种限定词来进行全球化、横竖屏等多场景的兼容。
转载于:https://www.cnblogs.com/konger/p/3896051.html
Develop系列-API Guides-简介-应用基础相关推荐
- 2.JSR简介 - JavaEE基础系列
JSR, Java Specification Request, Java规范请求; 也有的地方翻译为Java规范提案. 在前面的文章 1. Java EE简介 - JavaEE基础系列中, 简要介绍 ...
- Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)
文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...
- OpenTSDB的/ API / PUT(opentsdb的输入的api)简介
写在前面,这里是补充宇毅的博客内容翻译几篇文档,补充下java代码的一些实现,参考文献和其他文章列表放在末尾 翻译原文档http://opentsdb.net/docs/build/html/api_ ...
- [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- C#多线程编程系列(二)- 线程基础
目录 C#多线程编程系列(二)- 线程基础 1.1 简介 1.2 创建线程 1.3 暂停线程 1.4 线程等待 1.5 终止线程 1.6 检测线程状态 1.7 线程优先级 1.8 前台线程和后台线程 ...
- PyTorch C++ API libtorch 简介
PyTorch C++ API libtorch 简介 翻译自 PyTorch 官方文档:https://pytorch.org/cppdocs/index.html#acknowledgements ...
- PyTorch学习笔记(二):PyTorch简介与基础知识
往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: PyTorch学习笔记(一):PyTorch环境安 ...
- 基于jdk8 LocalDate系列API的全新实用时间工具类
基于jdk8 LocalDate系列API的实用时间工具类, 已经经过多个项目的考验与完善, 包含个人心得体会 欢迎转载,转载请注明网址:https://blog.csdn.net/qq_419102 ...
- Android API 指南 - Android API Guides
http://developer.android.com/intl/zh-CN/guide/components/index.html ) 请找到自己要翻译的部分,按下面的'链接规范'添加到下面列表中 ...
最新文章
- 盖茨、奥巴马、马斯克账号被黑,推特遭大规模黑客攻击
- 数据中心在未来数据管理中的作用
- praying,blessing,wishing
- long logn的大小c语言,基本排序(C语言版) - ________MX的个人页面 - OSCHINA - 中文开源技术交流社区...
- java process exe.exec 执行exe程序
- 拥抱PostgreSQL,红帽再表态:SSPL的MongoDB坚决不用
- css布局难,运用
CSS布局到底有多难?[多图]
- freeswitch安装步骤(源码编译安装)
- 有监督学习,无监督学习,半监督学习和强化学习
- linux数据库能看到系统执行了哪些命令,Linux-Mysql常用命令(上)
- android实时声音信号波形_android绘制播放音频的波形图
- 有妇如此,夫复何求!
- 【Centos】查询命令
- CSS设置html网页背景图片 CSS设置网页背景颜色
- js关闭当前的弹窗页面
- 《人类简史》--摘录
- JS如何向对象中添加元素
- OWL操盘主图可视化解读
- 神经元的细胞体有什么用,神经元细胞和神经细胞
- eclipse Jad class文件反编译插件安装及net.sf.jadclipse_3.3.0.jar和jad.exe下载地址