亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android中基于回調(diào)接口的確權(quán)機(jī)制

        2016-08-18 07:37:25林莉蕓曾雪松
        關(guān)鍵詞:機(jī)制用戶方法

        林莉蕓 曾雪松

        (信陽職業(yè)技術(shù)學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,河南 信陽 464000)

        ?

        Android中基于回調(diào)接口的確權(quán)機(jī)制

        林莉蕓曾雪松

        (信陽職業(yè)技術(shù)學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,河南 信陽 464000)

        對(duì)Android系統(tǒng)中的回調(diào)接口的確權(quán)機(jī)制做簡(jiǎn)要介紹,對(duì)基于回調(diào)接口的確權(quán)機(jī)制做深入討論,最后結(jié)合實(shí)際情況,給出Android應(yīng)用的開發(fā)流程圖。

        Android;回調(diào);接口;確權(quán)

        0 引言

        不管是桌面應(yīng)用還是手機(jī)應(yīng)用程序,面對(duì)最多的就是用戶,經(jīng)常需要處理的就是用戶動(dòng)作,也就是需要為用戶的動(dòng)作提供響應(yīng)。這種為用戶動(dòng)作提供響應(yīng)的機(jī)制就是確權(quán)機(jī)制。隨著移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,手機(jī)應(yīng)用越來越豐富,在應(yīng)用安裝運(yùn)行的同時(shí),它們就擁有了一些搜集手機(jī)數(shù)據(jù)的權(quán)限,在豐富我們生活的同時(shí),個(gè)人的隱私也隨之有可能遭到泄露。在不知不覺中,大量的應(yīng)用都在截取著我們?cè)诨ヂ?lián)網(wǎng)上的消費(fèi)信息和消費(fèi)習(xí)慣。那么如何避免個(gè)人的過多信息遭到泄露呢?從Android 4.4開始引入了權(quán)限管理機(jī)制。

        所謂權(quán)限管理,就是能夠手動(dòng)配置某個(gè)App的權(quán)限,進(jìn)而阻止惡意軟件以及防止隱私泄漏。當(dāng)然,更進(jìn)一步的權(quán)限管理,是能夠在App動(dòng)態(tài)使用某個(gè)權(quán)限的時(shí)候,提供一直通知機(jī)制提示用戶允許和拒絕。這樣的權(quán)限管理就更加類似于Windows中的主動(dòng)防御。

        目前Android默認(rèn)的權(quán)限管理方法是:檢測(cè)應(yīng)用操作權(quán)限請(qǐng)求,構(gòu)造一個(gè)AlertDialog對(duì)象供用戶選擇。用戶有三種選擇:允許、拒絕和忽略。Android系統(tǒng)設(shè)備根據(jù)用戶的選擇來決定應(yīng)用此次操作的權(quán)限:要么允許此次操作,要么阻止此次操作,要么忽略。這種彈框機(jī)制不但與OS 5.0系統(tǒng)風(fēng)格不符,而且會(huì)造成多個(gè)AlertDialog堆積在一起,用戶要一個(gè)個(gè)自上而下地確權(quán),不能一目了然地看到系統(tǒng)當(dāng)前所有的權(quán)限申請(qǐng)。

        在實(shí)際實(shí)訓(xùn)項(xiàng)目實(shí)現(xiàn)上采用了基于回調(diào)接口的新的確權(quán)機(jī)制,用自定義的view代替了系統(tǒng)采用的AlertDialog,新機(jī)制能大大改善用戶體驗(yàn),符合OS 5.0風(fēng)格。

        1 回調(diào)接口

        回調(diào)就是當(dāng)主程序需要的時(shí)候(或者到預(yù)定義狀態(tài)值)調(diào)用的接口實(shí)現(xiàn)類。接口實(shí)際上是不能被直接調(diào)用的,我們能調(diào)用的一定不是接口或者抽象類。

        回調(diào)接口的很多應(yīng)用場(chǎng)景是出現(xiàn)在以接口類型為參數(shù)的情況下,以匿名內(nèi)部類的方式傳入而達(dá)到。

        例如,假設(shè)有一個(gè)Java的API方法叫作(其中的ClickEvent就是一個(gè)接口)public void addEventListener(ClickEvent evt),那么,你在調(diào)用的時(shí)候就可以這樣:

        addEventListener(new ClickEvent(){

        //在這里實(shí)現(xiàn)接口中的方法

        });

        當(dāng)發(fā)生某事件時(shí),API的addEventListener方法就會(huì)被組件調(diào)用,從而所完成的匿名內(nèi)部類代碼就會(huì)被組件執(zhí)行。

        例如,客戶程序C調(diào)用服務(wù)程序S中的某個(gè)函數(shù)A,然后S又在某個(gè)時(shí)候反過來調(diào)用C中的某個(gè)函數(shù)B,對(duì)于C來說,這個(gè)B便叫做回調(diào)函數(shù)。像Win32下的窗口過程函數(shù)就是一個(gè)典型的回調(diào)函數(shù)。一般說來,C不會(huì)自己調(diào)用B,C提供B的目的就是讓S來調(diào)用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名誰,所以S會(huì)約定B的接口規(guī)范(函數(shù)原型),然后由C提前通過S的一個(gè)函數(shù)R告訴S自己將要使用B函數(shù),這個(gè)過程稱為回調(diào)函數(shù)的注冊(cè),R稱為注冊(cè)函數(shù)。Web Service以及Java的RMI都用到回調(diào)機(jī)制,可以訪問遠(yuǎn)程服務(wù)器程序。

        2 基于回調(diào)接口的確權(quán)機(jī)制

        當(dāng)應(yīng)用有權(quán)限請(qǐng)求時(shí),權(quán)限管理服務(wù)會(huì)通過Binder調(diào)用到SystemUI中注冊(cè)的回調(diào)接口,回調(diào)接口構(gòu)造一個(gè)自定義的view對(duì)象并呈現(xiàn)給用戶,用戶確權(quán)后通過Binder將確權(quán)結(jié)果傳給權(quán)限管理服務(wù)。權(quán)限管理服務(wù)進(jìn)而將結(jié)果返回給申請(qǐng)權(quán)限的客戶端,客戶端根據(jù)確權(quán)結(jié)果繼續(xù)以下的流程。

        所有的權(quán)限請(qǐng)求以自定義的View顯示,自定義View以List的形式通過狀態(tài)欄彈出,能讓用戶一覽無余,隨意選擇對(duì)哪個(gè)請(qǐng)求操作作出回應(yīng)。而并非像在原生狀態(tài)下機(jī)械地按順序操作。

        JAVA方法回調(diào)是功能定義和功能實(shí)現(xiàn)分享的一種手段,是一種耦合設(shè)計(jì)思想。作為一種架構(gòu),必須有自己的運(yùn)行環(huán)境,并且提供用戶的實(shí)現(xiàn)接口。

        (1)定義接口 Callback,包含回調(diào)方法callback()

        (2)在一個(gè)類Caller中聲明一個(gè)Callback接口對(duì)象mCallback

        (3)在程序中賦予 Caller對(duì)象的接口成員(mCallback) 一個(gè)內(nèi)部類對(duì)象如

        new Callback(){

        callback(){

        //函數(shù)的具體實(shí)現(xiàn)

        }

        }

        這樣,在需要的時(shí)候,可用Caller對(duì)象的mCallback接口成員調(diào)用callback()方法,完成回調(diào)。

        例如,Android設(shè)備構(gòu)造狀態(tài)欄PhoneStatusBar時(shí),實(shí)例化一個(gè)自定義的View對(duì)象PermissionsCheckPanelView,該對(duì)象代表著權(quán)限申請(qǐng)?zhí)崾究?。同時(shí)該View對(duì)象又是CheckPermissionCallback類的一個(gè)成員變量。

        通過IOnCallbackAddRequest接口類將CheckPermissionCallback和AppOpsService連接起來,當(dāng)有權(quán)限請(qǐng)求操作時(shí),AppOpsService的askOperationLocked方法被調(diào)用,在askOperationLocked方法中調(diào)用IOnCallbackAddRequest接口中的onAddRequest方法。進(jìn)而會(huì)調(diào)用到CheckPermissionCallback中的該方法,CheckPermissionCallback對(duì)該方法做了實(shí)現(xiàn)。實(shí)現(xiàn)的本質(zhì)就是發(fā)送消息MSG_CTRLALL_PERMISSION_CHECK_PANEL,在該消息的處理中構(gòu)造一個(gè)PermissionsCheckPanelView對(duì)象并顯示出來。該對(duì)象代表著權(quán)限申請(qǐng)?zhí)崾究?。PermissionsCheckPanelView對(duì)象已實(shí)現(xiàn)OnTouchListener和OnItemClickListener接口,可以響應(yīng)用戶的選擇操作。當(dāng)用戶作出選擇或者等待15秒后,SystemUI會(huì)通過Binder調(diào)用AppOpsService的pushRequestChoice方法。在該方法中將用戶的選擇結(jié)果做處理,如用戶選擇記住時(shí),需要將確權(quán)結(jié)果寫進(jìn)appops.xml文件。最后將確權(quán)結(jié)果通過Binder傳回給申請(qǐng)權(quán)限的客戶端,客戶端根據(jù)結(jié)果繼續(xù)下面的流程。以下是確權(quán)流程詳細(xì)圖示。

        3 結(jié)語

        Android應(yīng)用需要運(yùn)行在手機(jī)上,手機(jī)與傳統(tǒng)的計(jì)算機(jī)相比存儲(chǔ)能力、計(jì)算能力有限,因此Android應(yīng)用更適合作為客戶端軟件來使用。作為客戶端應(yīng)用程序,手機(jī)更能充分發(fā)揮它的攜帶方便的優(yōu)勢(shì),可以隨時(shí)隨地開機(jī)運(yùn)行程序,而且可以隨時(shí)訪問網(wǎng)絡(luò),通過網(wǎng)絡(luò)與服務(wù)器交互。

        [1]董曉剛.Android中基于回調(diào)機(jī)制的事件處理[J].中國(guó)電子商務(wù),2013,(13).

        [2]李楊.基于Android的多媒體應(yīng)用開發(fā)與研究[J].計(jì)算機(jī)與現(xiàn)代化,2011,(4).

        [3]韓超.基于Android經(jīng)典應(yīng)用開發(fā)[M].北京:人力資源出版社,2011.

        [4]劉平.Android手機(jī)訪問服務(wù)器的一種數(shù)據(jù)交互方法[J].電子設(shè)計(jì)工程,2010,(9).

        責(zé)任編輯:柴造坡

        10.3969/j.issn.1674-6341.2016.04.015

        2016-03-31

        林莉蕓(1978—),女,河南駐馬店人,碩士,講師。研究方向:網(wǎng)絡(luò)與多媒體技術(shù)、軟件技術(shù)。

        TP316

        A

        1674-6341(2016)04-0033-02

        猜你喜歡
        機(jī)制用戶方法
        自制力是一種很好的篩選機(jī)制
        文苑(2018年21期)2018-11-09 01:23:06
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        可能是方法不對(duì)
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        破除舊機(jī)制要分步推進(jìn)
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        捕魚
        如何獲取一億海外用戶
        亚洲欧美日韩一区二区三区在线 | 麻豆国产巨作AV剧情老师| 久天啪天天久久99久孕妇| 日日噜噜噜夜夜狠狠久久蜜桃| 亚洲国产亚综合在线区| 精品水蜜桃久久久久久久| 日韩中文无线码在线视频观看| 在线观看国产精品自拍| 亚洲一区二区三区偷拍视频| 国产精品一区二区久久毛片| 国内偷拍国内精品多白86| 国产偷久久久精品专区| 天美麻花果冻视频大全英文版 | 国产又色又爽的视频在线观看91| 手机看片自拍偷拍福利| 日韩人妻无码精品久久免费一| 真人做爰片免费观看播放| 国产99视频精品免费视频免里| 日韩极品视频在线观看| 国产三级黄色免费网站| 在线无码中文字幕一区| 国产精品免费大片| 亚洲中文字幕乱码| 久久伊人精品只有这里有| 亚洲人成网站色在线入口口| 国产乱国产乱老熟300部视频| 国产精品亚洲欧美天海翼| 中文字幕精品亚洲一区二区三区 | 中国精学生妹品射精久久| 天堂网av在线| 就爱射视频在线视频在线| 色噜噜狠狠狠综合曰曰曰| 国产成人精品免费久久久久| 性色av一区二区三区密臀av| 夫妻免费无码v看片| 蜜臀av在线一区二区尤物| 亚洲国产不卡av一区二区三区| 999国产精品视频| 国产精品不卡无码AV在线播放| 国产精品自拍午夜伦理福利| 男女猛烈xx00免费视频试看|