- 浏览: 128515 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
mzba520:
这样会导致拖动列表的时候,只要有链接长按事件会被触发。
Android TextView中增加超链接的匹配后,导致非超链接区域点击失效的问题解决方案 -
cfyme:
请问一下,我成功发送了一个会议邀请,怎么取消会议邀请,怎么更改 ...
通过ical4j与javamail实现会议邀请总结 -
xyy_zero:
有没有个demo?
Android中的网络时间同步
原文出处:http://www.android123.com.cn/androidkaifa/515.html
自定义Android应用的访问权限
由于Android部分设计原理较为开放,可能通过Intent或 PackageManager就可以解析处理调用其他应用的子类,所以在部分应用中需要做更多的安全处理,保证应用内部的稳定性和安全性。 Android123强烈大家仔细阅读本文,这将会对您在构架Android应用时减少一些隐患的发生。
稳定性: 部分类可能没有数值的传入将会导致可能初始化失败,造成Force Close等问题。
安全性: 其他应用调用本程序的SQL数据库等问题,可能会造成一些无法预料到的损失。
一、Android应用内部安全保护
为了考虑内部部分敏感数据处理的安全性加入类ACL访问控制,当然使用了更加灵活的,比如UID、SID、PID等多种方式:今天Android开发网一起和大家谈论下开发过程中的处理细节。
1. 部分私有的配置信息,或相对轻量级的内容,可以使用SharedPreferences接口提供的相关方法处理,并设置为安全标志位私有MODE_PRIVATE,不过需要注意的是该方方仅能但进程调用。
2. SQLite的安全问题,对于Content Provider的处理权限,在Android中可以直接显示的声明,比如在androidmanifest.xml中声明读或写权限,在 Provider节点中,声明android:writePermission或android:readPermission属性,当然其他程序声明了 这些权限也可以访问,这时我们可以通过 android:authorities属性限制一个类的访问,比如 android:authorities="cn.com.android123.cwj" 。最终类似
<provider android:name="cwjProvider" android:authorities="cn.com.android123.cwjProvider" android:writePermission="cn.com.android123.cwj.permission.WRITE_DATABASE" android:readPermission="cn.com.android123.cwj.permission.READ_DATABASE" />
这里Android123提示大家,数据库本身的读写可以处理多线程问题,但是数据的先后可以考虑同步问题,设置android:multiprocess="true"属性来保证数据的正确性,相关问题不在本文讨论范围内,我们可能会在以后的内容中涉及这部分问题。
3. Activity、Service和Receiver的权限声明方式,可以直接使用android:permission属性,具体的和上面的SQLite安全一样的处理方式,演示代码如下
<activity android:name=".cwj" android:authorities="cn.com.android123" android:permission="cn.com.android123.cwj.permission.ACCESS"/>
二、Permission的声明
<permission android:name="cn.com.android123.cwj.permission.ACCESS" android:protectionLevel="normal" android:label="@string/permission_aceess" android:description="@string/permission_aceess_detail" />
当然还有可选的属性比如说android:protectionLevel="normal"设置保护权限,还有必须签名signature,当然这里对 于权限分组我们可以通过类似permission的方法来声明permissionGroup,或直接使用系统的,比如 android:permissionGroup="android.permission-group.SYSTEM_TOOLS"最终其他应用中调 用,可以显示的在自己的manifest.xml中声明即可,类似 <uses-permission android:name="cn.com.android123.cwj.permission.ACCESS" />
三、账户安全声明
直接在androidmanifest.xml中的Application中直接声明,比如标准用户权限类似
android:sharedUserId="android.uid.shared" ,当然处理一些RIL方面的可以声明类似 android.uid.phone 的权限,处理一些更敏感的数据。
四、对于Service而言除了限制访问的package外,我们还可以通过直接绑定并参数判断的访问来处理尽量不使用 android:exported="true"的导出方法,当然通过broadcast方式通讯可以通过intent的extra方式可以做一些简单的 验证。
五、PID的安全问题,通过限制processID的方式限制访问,仅允许在同一个进程空间访问。
发表评论
-
删除git submodule最为精准的一片描述文章
2015-02-11 00:19 1146转自 http://davidwalsh.name/git ... -
Android Manifest文件中meta-data的配置读取
2014-12-01 11:54 2704Manifest文件中配置meta-data的读取,例如如下 ... -
浏览器中打开指定的链接
2014-09-05 18:21 854浏览器中打开指定的链接 try { ... -
Android Studio打开工程出现Android SDK识别不了的问题
2014-08-19 19:51 6561问题现象: 使用Android Studio打开(imp ... -
dumpsys info
2014-04-24 15:42 737dumpsys 命令行的使用收录 1.查看ui绘制相关的 ... -
jar包编译所用的jdk版本不一致导致的问题
2014-04-01 13:10 2714所维护的app中使用到一个外部工程但是是自己维护的sdk,这 ... -
SQLiteDatabase执行计划的查看
2014-03-27 14:08 2042Android中内置的SQLite是可以通过命令行工具来查看 ... -
Android性能调优出发点
2014-03-13 17:06 558http://www.trinea.cn/android ... -
SQLiteDatabase使用问题总结
2014-03-10 17:40 2648SQLiteDatabase使用过程中经常碰到的问题 1. ... -
问题分析:java.lang.IllegalStateException: getDatabase called recursively
2014-03-05 15:33 3003问题场景: 在app首次启动使用到db的时候,后台提示如下 ... -
网络加载到的图片适配不同分辨率的手机屏幕
2013-12-18 19:38 2181对于从网络上加载到的图片信息,在解析的时候一般会解析成图片 ... -
Error inflating class问题解决思路
2013-09-25 17:13 5877修改问题的过程中,碰到如crash log中的日志信息(l ... -
Android应用性能测试(CPU和内存的性能)
2013-09-10 11:26 2573按照以下步骤进行性能测试的前置条件 1.测试手机具备ro ... -
ListView的adapter中的getView函数多次重复调用,导致数据显示重复的问题分析
2013-08-27 23:11 4895使用ListView显示数据, ... -
使用startActivityForResult启动新的Activity时,onActivityResult立马被执行的问题说明
2013-07-18 13:44 1941问题现象描述: Activity P1通过startAc ... -
使用硬件加速的注意事项
2013-07-02 11:17 2088为提高app的整体性能,在manifest文件中配置的时候, ... -
mac下调试android时设备无法识别的问题解决方案
2013-06-27 11:44 1566问题现象: 1.mac的os ... -
mac 环境变量
2013-06-26 10:33 638~/.bash_profile export ... -
GridView在复用View的时候导致部分数据显示重复的问题
2013-06-04 17:14 2184android.widget.GridView中setAda ... -
android 图片放大的处理
2013-05-29 15:37 1091场景:从网络上下载下来的小图片,直接使用设置某些区域的大小的 ...
相关推荐
在应用需要使用自定义权限的地方,也需要在`AndroidManifest.xml`中声明这个权限: ```xml <uses-permission android:name="com.example.MY_CUSTOM_PERMISSION"/> ``` 3. **请求权限**: 对于API级别23及以上...
3. 请求权限:如果未获得权限,可以使用`requestPermissions()`方法向用户请求,同时需要实现`ActivityCompat.OnRequestPermissionsResultCallback`接口处理结果。 四、权限动态请求 对于Android 6.0(API 23)及...
总结来说,Android的记录访问权限和`UsageStatsManager`是强大的工具,它们可以帮助开发者深入了解用户如何与他们的应用互动,同时也有助于提高用户体验和设备的安全性。然而,正确使用这些工具需要对Android权限...
2. **硬件访问权限**:Android 6.0(API级别23)及更高版本引入了动态权限模型,意味着在运行时,应用需要获取敏感权限。对于串口访问,需要在代码中请求`android.permission.WRITE_EXTERNAL_STORAGE`和`android....
总之,自定义权限是Android系统权限体系的扩展,它让开发者能够更精细地控制应用的访问权限,以适应特定的安全需求。正确理解和使用自定义权限,可以增强应用的安全性,并提供更好的用户体验。在实际开发中,务必...
在Android应用开发过程中,访问权限管理是一项至关重要的工作。合理的权限配置不仅可以保障用户数据的安全,还能确保应用的正常运行。本文将详细介绍Android中的多种访问权限及其功能,帮助开发者更好地理解并使用...
首先,在`AndroidManifest.xml`中为应用添加读写外部存储的权限: ```xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission....
同时,在其他应用或同一应用的其他组件中,如果想要访问这个受自定义权限保护的组件,必须在自身的`AndroidManifest.xml`文件中请求该权限: ```xml <uses-permission android:name="com.permission.my"/> ``` ###...
1. 检查权限:在运行时,通过`ContextCompat.checkSelfPermission()`方法检查应用是否已经获得了所需的自定义权限。 ```java int permissionCheck = ContextCompat.checkSelfPermission(this, ...
本项目实战将重点讲解如何读取应用的权限以及实现自定义的Toast提示功能,这些都是Android应用开发中不可或缺的部分。 首先,我们来探讨**读取应用权限**这一主题。在Android系统中,应用程序需要获取特定的权限...
2. **应用程序签名**:所有Android应用都需要经过数字签名才能发布。这不仅是对开发者身份的一种认证,也是保证应用来源可信的重要手段。 3. **权限机制**:Android系统通过权限机制来限制应用的某些敏感行为,如...
以上就是自定义Android相机应用开发的主要知识点,通过理解并实践这些内容,开发者可以创建出满足特定需求的个性化相机应用。RXCamera这个文件很可能是项目的核心代码库,里面可能包含了上述功能的实现,对学习和...
在Android系统中,修改系统文件访问权限涉及到对操作系统底层的深度理解,这通常需要root权限。以下是关于这个主题的详细知识点: 1. **init.rc**:这是Android系统启动时执行的第一个脚本,位于系统的system/core/...
2. Android SDK:Android 桌面应用程序需要使用 Android SDK 来访问 Android 操作系统的功能。 3. XML 布局:Android 桌面应用程序使用 XML 布局来描述用户界面。 Android 桌面应用程序的实现流程包括: 1. 创建...
自定义权限学习(Perssion)是指开发者根据应用需求创建并管理自己的权限,这通常涉及到系统层面的权限定义和应用间的权限交互。本教程将深入探讨如何在Android中实现自定义权限,并通过两个项目实例——...
在Android开发中,自定义相机拍照和录像是一项常见的需求,特别是在构建个性化应用或者需要特定功能时。本项目针对这一主题提供了完整的解决方案,并已转化为Android Studio项目,方便开发者直接导入和使用。 首先...
Android访问权限列表大全详细列出了应用程序在执行特定功能时需要请求的权限。这些权限分为不同的类别,包括位置、网络、硬件访问等,以确保用户明确知道哪些功能可能会访问他们的敏感数据或系统资源。以下是一些...
2. **使用权限**:在需要使用此自定义权限的组件(Activity、Service等)中,通过`<uses-permission>`标签声明该权限: ```xml <uses-permission android:name="com.example.myapp.CUSTOM_PERMISSION"/> ``` 3. ...
《高教类课件:Android应用程序设计》是针对高等教育阶段设计的一套教学资源,旨在深入讲解如何开发Android平台上的应用程序。这一课程涵盖了Android应用开发的基础到高级知识,为学生和有兴趣的开发者提供了全面的...