应用基本原理

android APP 使用java语言编写。android SDK 工具将你的代码编译为apk:android包,这是一个使用apk作为后缀的档案文件——根据data和resource文件——。这个APk文件包含一个android APP的多有内容,并且anroid设备使用这个文件取安装APP。

一旦被安装在设备上,每一个android APP存在于它自己的安全区域:

android OS是一个多用户的linux系统,每一个APP是一个不同的用户。

默认情况,系统为每一个APP分配一个独一无二的linux用户ID.系统为APP里面的文件设置权限,使得分配给APP的唯一的用户ID有权限使用他们。

每一个APP有它自己的java 虚拟机。一个APP的代码运行和其他的APP是分开的

一般,每一个APP运行在他自己的linux进程中。android启动进程,当APP的组建需要被执行的的时候;然后关闭进程,当它不再需要或者系统必须为其他APP获取内存

总之,android实现的了最小特权原则。一般,每一个APP仅仅可以访问这些它工作需要的组建,不包含其他。这创建了一个非常安全的环境,app不能够访问那些没有给予权限的系统部分。


但是有一些方法可以给一个APP和其他APP共享数据,也可以使得一个APP可以访问系统服务。

可以安排2个app共享用户ID,在这种情况下他们可以互相访问文件。为了节省系统资源,APP有相同的用户ID,运行在相同的进程中和共享相同的虚拟机。这些APP必须使用相同的证书签名。

app可以申请权限去访问设备数据,例如用户的联系人,短信息,挂载的存储sdcard,camera,蓝牙和其他。在安装的时候,所有的APP权限必须被用户授予

涵盖基本要素,一个androidAPP存在于系统中,文档的其他部分向你介绍。

核心框架组建定义你的APP。

在manifest文件里,你可以定义组建和为APP申请设备特性

resources 和你的APP代码分开,允许你的APP针对各类设备很好的优化它的行为。

APP 组建

APP组建是android APP的基本组成模块。每一个组建是一个系统开始的你APP的不同的点。

activityes 单一的用户界面屏幕

services运行在后台,执行长时间的操作和为远程进程执行工作,没有用户界面

content provider 管理共享的数据集合

broadcast receivers 响应系统广播公告

一些用来启动各类组建的方法:

启动activity——传递一个Intent给startActivity()或者startActivityForResult()

启动services——传递Intent给startService()。或者绑定服务 传递Intent 给 bindService().

启动Broadcast 传递Intent给 sendBroadcast(),sendOrderedBroadcast(), or sendStickyBroadcast().。

执行一个查询使用一个contentProvider调用query()方法。


intent使用:

总是在纠结万能的intent使用方法,今天发现了一个有趣的事情。随便写了个测试程序,代码如下:

Intent mIntent = new Intent();
mIntent.setAction(mIntent.ACTION_MAIN);
startActivity(mIntent);
这些写在一个onclick函数里面的,当点击button时运行这些代码,会出现手机上所有应用的一个选择框。

后来,发现在activity类中有一个getIntent()方法,使用这个方法获取当前activity的Intent,将上面的代码中的intent替换为getIntent获取的intent,再次运行代码,会发现没有任何反应。我又尝试修改ACTION,发现代码确实是运行了。

这就可以看出Intent和activity的关联性,一般我们使用startactivity或者一些类似的函数切换界面的时候,使用getIntent方法获取Intent,当需要返回的时候,由于Intent和各个activity关联,我们只要在activity里面设置好action,就可以方便的在不同界面间切换。如果 new一个intent,也可以使用setIntent方法使得Intent和当前的activity关联。一个没有关联的Intent在使用的时候,实在整个android里面找东西,有些超出了范围,这是一个不好管理的变量。


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、下4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、下4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值