来源: 最后更新:22-04-17 02:46:02
服务器端可能是JavaEE、DOTNET等Web服务器,或者是提供Webservice接口的数据,并且组织成各种形式。Android提供的HttpClient可以向Web服务器发送请求并且处理响应,可以抓取到服务器获得的权限数据,此外Android也提供了Webservice和Socket支持,所以Android从不同形式的服务器都可以获得数据,这为系统实现提供了重要的数据基础,本文着重讨论从Web服务器获得数据的方式。
数据共享
Android提供了Application类,在一个应用中这个类的实例被共享,可以将权限数据放在其中,系统所有组件通过Application获得共享的权限数据。Application类通常要通过继承的方式使用。
Android的可配置性组件
Android的展示层组件是Activity,这是一个容器组件,其他的组件可以通过配置文件或者硬编码的方式添加到Activity[6]中,然后显示在移动设备界面,其中通过XML配置文件具有灵活配置、维护方便的特点。所有可视化组件都继承了View组件,View组件具有setDescription(String)方法,配置文件是android:description属性,可以将权限数据配置其中,通过这个属性中配置的数据和服务器端抓取的权限数据进行比对,决定组件的可视化。
Android组件的可见性属性
View组件可以通过setVisibility(int)方法设置组件的可视化,其参数有三个值,View.VISIBLE设置组件可以显示,View.INVISIBLE设置组件不显示但是占用布局空间,View.GONE设置组件不显示也不占用布局空间。
Activity组件的遍历
Activity组件根据getLayoutInflater()方法获得LayoutInflater类型的引用[7],根据这个引用的inflate(int,ViewGroup)方法获得组件的布局,其中第一个参数是布局文件的ID,第二参数是组件组,根据获得布局可以遍历Activity中所有的组件。
架构设计及代码实现
权限实体类
权限实体类包含了权限的相关信息,其中最重要的就是权限数据。以下是权限实体类的代码片段:系统中所有的权限通过Map进行组织,键是权限字符串,值是权限对象,这可以方便通过权限字符串检索权限。
通过HTTP获取服务器权限点
这里采用HTTP方式获取服务器数据,它和传统服务器编程中的请求和响应处理是相同的,Android实现了Apache的HttpClient接口,从而实现了HTTP操作。为了便于数据的操作和传送,服务器和Android客户端的数据可以通过JSON格式组织。以下是代码片段:
数据共享实现
构建一个BasicApplication类继承Application,这个类的对象可以在应用程序中被每个组件共享访问,所以需要将其构建成单例模式,并给予共享数据的读写方法,以下是这个类的代码:
权限控制类
权限控制类控制Activity中组件的可视化,在类中构建一个静态方法publicstaticvoidpermissionControl(Activityact,intresId,Map<String,Permission);这个方法的三个参数分别是activity组件的引用,activity组件中布局资源的id和权限数据。方法的功能是遍历布局资源中所有的组件,然后根据其中description属性配置的权限和获得的权限数据比对,如果比对成功则或者组件没有配置权限,则设置组件可视,否则隐藏组件,代码如下:
Activity基类
所有的Activity都要进行权限控制,所以抽取出一个Activity的基类完成权限,Activity组件继承这个基类也就完成了权限控制,然后再完成自己独立的业务,基类具体代码如下:
结束语
Android开发现在已经广泛的使用,Android自身是对Java进一步作了适应于移动开发的封装,基于移动应用的开发会越来越普遍,本文重点论述Android端权限系统的架构和实现,其主要目的是在构建可用的权限系统上让代码更加优雅,让系统的使用和可维护性更加方便。
省委批准,杨建生被开除党籍!曾任省检察院反贪污贿赂局局长
男子在三亚一酒店浴室发现摄像头,此前已住过一晚,酒店:等待警方调查
为什么叫五条人 为什么五条人这么火
高端的不好卖了 高端生意不好做?你需要知道这些
iQOOZ5x5G通过工信部认证:5000mAh电池,189g重
三星GalaxyS22系列获国家3C质量认证:25W快充,充电器可选
上海35辆5G急救车投入使用,实现远程实时会诊/传输数据
首款安卓16手机预定,消息称谷歌Pixel6系列将获5年Android更新
马斯克:特斯拉FSDbeta10.2版本将在明晚上线
工信部就“关于垃圾短信治理的提案”进行答复
三星GalaxyS22系列获国家3C质量认证:25W快充,充电器可选
21家上市公司集体解约普华永道,此前卷入恒大造假风波21家上市公司集体解约普华永道,此前卷入恒大造假风波,安永,审计,
tik tiktok国际版下载 第一批小米车主:我给雷军这些建议 小米的第一款车 如何使用早孕试纸自测怀孕 检测怀孕的试纸图片 国防部长:我们对待“台独”武装就像瓮中捉鳖