軟件工程專業(yè)畢業(yè)設計論文內(nèi)容模板_第1頁
軟件工程專業(yè)畢業(yè)設計論文內(nèi)容模板_第2頁
軟件工程專業(yè)畢業(yè)設計論文內(nèi)容模板_第3頁
軟件工程專業(yè)畢業(yè)設計論文內(nèi)容模板_第4頁
軟件工程專業(yè)畢業(yè)設計論文內(nèi)容模板_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、本科畢業(yè)設計論文模板(軟件開發(fā)類)1緒論研究背景(合并1.2)春天里來百花香,怎么會不讓人沉醉呢?美麗的花自然好看,但人的創(chuàng)造力更是無邊,花藝賦予了鮮花更多的話語表達,想不想接觸甚至做出更多美好的花藝作品呢?花田小憩不僅僅是有專業(yè)的花藝教學內(nèi)容,它還是一個活躍的百萬花藝愛好者社區(qū)。在這里,你可以看到各式各樣的話題討論,不僅限于花藝,還延伸至家居、植物、雜物等生活美學領(lǐng)域。花田小憩還提供了眾多高清花藝壁紙,供你下載換桌面,可以適配各種屏幕尺寸。手機的美觀再也不愁了?;ㄌ镄№且豢罨ㄋ噽酆谜卟蝗蒎e過的生活應用。在這里,收獲的不僅僅是花藝知識,還有同道中人和美的生活方式。讓你的節(jié)奏,慢下來,美下去。

2、作為一個植物生活美學平臺,花田小憩還提供跟花藝與生活美學相關(guān)的物品販賣,如鮮花、器皿、干花、書籍等。你可以在這里尋找生活的美?;ㄌ镄№瑒?chuàng)辦初衷是想為所有喜歡植物和美學的人們,通過花草與時間的疊加,營造一個小而美的精致生活。希望能讓用戶在繁瑣的生活之中,享受一種靜雅恬淡的生活之美,制造一份專屬的美學生活態(tài)度。研究開發(fā)現(xiàn)狀分析(1)研發(fā)現(xiàn)狀:現(xiàn)有系統(tǒng)解決領(lǐng)域問題及其技術(shù)運用現(xiàn)狀的分類、分析,優(yōu)缺點分析:總結(jié)現(xiàn)有成果的優(yōu)缺點;(2)系統(tǒng)開發(fā)的必要性;在上述分析的基礎(chǔ)上,闡明項目研究開發(fā)的必要性。主要研究內(nèi)容.(1)技術(shù)路線:采用什么技術(shù)、方法、環(huán)境與工具;(2)系統(tǒng)特征:解決的關(guān)鍵問題(解決什么問題

3、)、達到什么目標,實現(xiàn)什么功能。本文的組織結(jié)構(gòu)此文的分為六部分,其中第一部分為緒論,主要介紹App的研究背景以及國內(nèi)外形勢,第二部分為相關(guān)技術(shù)和工具綜述,主要分為Android技術(shù)的講解、Android應用程序的介紹、Java開發(fā)方面的知識、C/C+開發(fā)方面的知識、硬件抽象層的概述、系統(tǒng)內(nèi)核層的講解、以及Android的安全權(quán)限機制的深入探討、Android四大組件中Activity的理解以及Android應用程序的框架,還有Android系統(tǒng)維護方面的相關(guān)知識。2.相關(guān)技術(shù)和工具綜述2.1Android技術(shù)Android是一種以linux為基礎(chǔ)的開放源代碼操作系統(tǒng),主要使用于便攜設備。目前尚

4、未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由AndyRubin開發(fā),最初主要支持手機。2005年由谷歌收購注資,并組建開放手機聯(lián)盟開發(fā)改良,逐漸擴展到平板電腦及其他領(lǐng)域上。Android的主要競爭對手是蘋果公司的ios以及RIM的BlackberryOS。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2012年2月數(shù)據(jù),Android占據(jù)全球智能手機操作系統(tǒng)市場52.5%的份額,中國市場占有率為68.4%。Android的系統(tǒng)架構(gòu)和其它操作系統(tǒng)一樣,采用了分層的架構(gòu)。android分為四個層,從高層到低層分別是應用

5、程序?qū)印贸绦蚩蚣軐?、系統(tǒng)運行庫層和linux核心層。Android是以Linux為核心的手機操作平臺,作為一款開放式的操作系統(tǒng),隨著Android的快速發(fā)展,如今已允許開發(fā)者使用多種編程語言來開發(fā)Android應用程序,而不再是以前只能使用Java開發(fā)Android應用程序的單一局面,因而受到眾多開發(fā)者的歡迎,成為真正意義上的開放式操作系統(tǒng)。在Android中,開發(fā)者可以使用Java作為編程語言來開發(fā)應用程序,也可以通過NDK使用C/C+作為編程語言來開發(fā)應用程序,也可使用SL4A來使用其他各種腳本語言進行編程(如:python、lua、tcl、php等等),還有其他諸如:QT(qtfor

6、android)、Mono(monoforandroid)等一些著名編程框架也開始支持Android編程,甚至通過MonoDroid,開發(fā)者還可以使用C#作為編程語言來開發(fā)應用程序。另外,谷歌還在2009年特別發(fā)布了針對初學者的AndroidSimple語言,該語言類似Basic語言。而在網(wǎng)頁編程語言方面,JavaScript,HTML5等等都已經(jīng)支持Android開發(fā)。Android應用程序早期的Android應用程序開發(fā),通常通過AndroidSD(KAndroid軟件開發(fā)包)下使用Java作為編程語言來開發(fā)應用程序,但通過不同的軟件開發(fā)包,則使用的編程語言也不同。例如開發(fā)者可以通過And

7、roidND(AndroidNative開發(fā)包)使用C語言或者C+語言來編程語言開發(fā)應用程序。同時谷歌還推出了適合初學者編程使用的Simple語言,該語言類似微軟公司的VisualBasic語言。此外,谷歌公司還推出了GoogleAppInventor開發(fā)工具,該開發(fā)工具可以快速地構(gòu)建應用程序,方便新手開發(fā)者。JAVA開發(fā)方面Android支持使用Java作為編程語言來開發(fā)應用程序,而Android的Java開發(fā)方面從接口到功能,都有層出不窮的變化。考慮到Java虛擬機的效率和資源占用,谷歌重新設計了Android的Java,以便能提高效率和減少資源占用,因而與J2ME等不同。C/C+開發(fā)方面

8、早期的Android開發(fā)只支持Java作為編程語言開發(fā)應用程序,因而使得其他語言開發(fā)者只能望而卻步。2010年4月,谷歌正式對開發(fā)者發(fā)布了AndroidNDKNDK允許開發(fā)者使用C/C+乍為編程語言來為Android開發(fā)應用程序,初版的NDK使得開發(fā)者看到了C/C+在Android開發(fā)中的希望。但是,當前版本的NDG功能上還有很多局限性:NDK并沒有提供對應用程序生命周期的維護;NDK也不提供對Android系統(tǒng)中大量系統(tǒng)事件的支持;對于作為應用程序交互接口的UIAPI,當前版本的NDK中也沒有提供。但是相對于初版的NDK現(xiàn)在的NDK已經(jīng)進行了許多重大的功能改進。由此可見,NDK仍然需要完善和

9、發(fā)展,相信未來隨著NDK的發(fā)展,NDK可以做得更多更好。硬件抽象層Android的HAL(硬件抽象層)是能以封閉源碼形式提供硬件驅(qū)動模塊。HAL的目的是為了把Androidframework與Linuxkernel隔開,讓Android不至過度依賴Linuxkernel,以達成kernelindependent的概念,也讓Androidframework的開發(fā)能在不考慮驅(qū)動程序?qū)崿F(xiàn)的前提下進行發(fā)展。HALstub是一種代理人(proxy)的概念,stub是以*.so檔的形式存在。Stub向HAL“提供”操作函數(shù)(operations),并由Androidruntime向HAL取得stub的op

10、erations,再callback這些操作函數(shù)。HAL里包含了許多的stub(代理人)。Runtime只要說明“類型”,即modulelD,就可以取得操作函數(shù)。系統(tǒng)內(nèi)核Android是運行于Linuxkernel之上,但并不是GNU/Linux。因為在一般GNU/Linux里支持的功能,Android大都沒有支持,包括Cairo、X11、Alsa、FFmpegGTKPango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android為了達到商業(yè)應用,必須移除被GNUGPL授權(quán)證所約束的部份,例如

11、Android將驅(qū)動程序移到userspace,使得Linuxdriver與Linuxkernel徹底分開。bionic/libc/kernel/并非標準的kernelheaderfiles。Android的kernelheader是利用工具由Linuxkernelheader所產(chǎn)生的,這樣做是為了保留常數(shù)、數(shù)據(jù)結(jié)構(gòu)與宏。安全權(quán)限機制Android本身是一個權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個應用都以唯一的一個系統(tǒng)識別身份運行(Linux用戶ID與群組ID)。系統(tǒng)的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統(tǒng)隔離開。系統(tǒng)更多的安全功能通過權(quán)限機制提供。權(quán)

12、限可以限制某個特定進程的特定操作,也可以限制每個URI權(quán)限對特定數(shù)據(jù)段的訪問。Android安全架構(gòu)的核心設計思想是,在默認設置下,所有應用都沒有權(quán)限對其他應用、系統(tǒng)或用戶進行較大影響的操作。這其中包括讀寫用戶隱私數(shù)據(jù)(聯(lián)系人或電子郵件),讀寫其他應用文件,訪問網(wǎng)絡或阻止設備待機等。安裝應用時,在檢查程序簽名提及的權(quán)限,且經(jīng)過用戶確認后,軟件包安裝器會給予應用權(quán)限。從用戶角度看,一款Android應用通常會要求如下的權(quán)限:撥打電話、發(fā)送短信或彩信、修改/刪除SD卡上的內(nèi)容、讀取聯(lián)系人的信息、讀取日程信的息,寫入日程數(shù)據(jù)、讀取電話狀態(tài)或識別碼、精確的(基于GPS)地理位置、模糊的(基于網(wǎng)絡獲?。?/p>

13、地理位置、創(chuàng)建藍牙連接、對互聯(lián)網(wǎng)的完全訪問、查看網(wǎng)絡狀態(tài),查看WiFi狀態(tài)、避免手機待機、修改系統(tǒng)全局設置、讀取同步設定、開機自啟動、重啟其他應用、終止運行中的應用、設定偏好應用、震動控制、拍攝圖片等。一款應用應該根據(jù)自身提供的功能,要求合理的權(quán)限。用戶也可以分析一款應用所需權(quán)限,從而簡單判定這款應用是否安全。如一款應用是不帶廣告的單機版,也沒有任何附加的內(nèi)容需要下載,那么它要求訪問網(wǎng)絡的權(quán)限就比較可疑。編輯本段系統(tǒng)組件Android開發(fā)四大組件分別是:活動(Activity):用于表現(xiàn)功能。服務(Service):后臺運行服務,不提供界面呈現(xiàn)。廣播接收器(BroadcastReceiver)

14、:用于接收廣播。內(nèi)容提供商(ContentProvider):支持在多個應用中存儲和讀取數(shù)據(jù),相當于數(shù)據(jù)庫。ActivityAndroid中,Activity是所有程序的根本,所有程序的流程都運行在Activity之中Activity可以算是開發(fā)者遇到的最頻繁,也是Android當中最基本的模塊之一。在Android的程序當中,Activity一般代表手機屏幕的一屏。如果把手機比作一個瀏覽器,那么Activity就相當于一個網(wǎng)頁。在Activity當中可以添加一些Button、Checkbox等控件??梢钥吹紸ctivity概念和網(wǎng)頁的概念相當類似。一般一個Android應用是由多個Activ

15、ity組成的。這多個Activity之間可以進行相互跳轉(zhuǎn),例如,按下一個Button按鈕后,可能會跳轉(zhuǎn)到其他的Activity。和網(wǎng)頁跳轉(zhuǎn)稍微有些不一樣的是,Activity之間的跳轉(zhuǎn)有可能返回值,例如,從ActivityA跳轉(zhuǎn)到ActivityB,那么當ActivityB運行結(jié)束的時候,有可能會給ActivityA一個返回值。這樣做在很多時候是相當方便的。應用程序框架開發(fā)人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構(gòu)設計簡化了組件的重用;任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應用程序重用

16、機制也使用戶可以方便的替換程序組件。隱藏在每個應用后面的是一系列的服務和系統(tǒng),其中包括;豐富而又可擴展的視圖(Views),可以用來構(gòu)建應用程序,它包括列表(lists),網(wǎng)格(grids),文本框(textboxes),按鈕(buttons),甚至可嵌入的web瀏覽器。內(nèi)容提供器(ContentProviders)使得應用程序可以訪問另一個應用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)資源管理器(ResourceManager)提供非代碼資源的訪問,如本地字符串,圖形,和布局文件(layoutfiles)。通知管理器(NotificationManager)使得應用程序可以在狀態(tài)欄

17、中顯示自定義的提示信息?;顒庸芾砥?ActivityManager)用來管理應用程序生命周期并提供常用的導航回退功能。2.2系統(tǒng)維護為了清除系統(tǒng)運行中發(fā)生的故障和錯誤,軟、硬件維護人員要對系統(tǒng)進行必要的修改與完善;為了使系統(tǒng)適應用戶環(huán)境的變化,滿足新提出的需要,也要對原系統(tǒng)做些局部的更新,這些工作稱為系統(tǒng)維護。系統(tǒng)維護的任務是改正軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴充在使用過程中用戶提出的新的功能及性能要求,其目的是維護軟件系統(tǒng)的“正常運作”。這階段的文檔是軟件問題報告和軟件修改報告,它記錄發(fā)現(xiàn)軟件錯誤的情況以及修改軟件的過程。3.需求分析3.1系統(tǒng)功能分析小蜿雁齊小蜿雁齊毎曰舉退TAfM息

18、MA汀聞兌按檢禹議煩T我的彳倉的訂單F喪規(guī)優(yōu)町界3.3系統(tǒng)非功能分析包括運行環(huán)境、系統(tǒng)接口、數(shù)據(jù)要求、主要性能、質(zhì)量體系(可靠性、可用性、安全等)、其他需求等;運行環(huán)境:MacOSX系統(tǒng)接口:專題頁面:一級頁面:專題:文章詳情:文章ID本周精選:let專題分類:最新:分類ID&pageIndex=0&type=new其他:分類ID發(fā)現(xiàn)頁面:輪播圖:POST請求參數(shù):NameValueActiongetAdList輪播圖詳情頁Html:POST請求參數(shù):NameValuetokenF4D845028303F9A466B67EFF9C8C6BD6輪播圖詳情頁評論:useridd6e0ce4c-44

19、c2-4b20-b07c-5cf9f21de3a6actiongetActivityactivityff1f65c4-01b7-4ccf-b4b2-bf81599010d2POST請求參數(shù):NameValueindex1actIdff1f65c4-01b7-4ccf-b4b2-bf81599010d2tokenF4D845028303F9A466B67EFF9C8C6BD6userIdd6e0ce4c-44c2-4b20-b07c-5cf9f21de3a6ActiongetComListpageSize5每日精選:POST請求參數(shù):NameValuetype薦actiongetJianOrJi

20、ngListcurrentPageIndex0pageSize4帖子詳情:POST請求參數(shù):NameValuebbsIdc6c89ef3-92c9-4bac-9381-6af00fad620euserIdd6e0ce4c-44c2-4b20-b07c-5cf9f21de3a6actiongetDetail評論詳情:POST請求參數(shù):NameValuebbsIdc6c89ef3-92c9-4bac-9381-6af00fad620eactiongetBbsListcurrentPageIndex0pageSize203.發(fā)布帖子:獲取帖子分類:POST請求參數(shù):NameValueactionge

21、tCircleType發(fā)布帖子:POST請求參數(shù):4.賬號信息:NameValuecontent大家好giftypeafe78aff-8c30-4beb-a7e2-95d0cbeea3c6tokenF4D845028303F9A466B67EFF9C8C6BD6useridd6e0ce4c-44c2-4b20-b07c-5cf9f21de3a6actionwriteBBSPOST請求參數(shù):5.注冊:NameValuetype1actiongetListversion2POST請求參數(shù):NameValuemobilecc86mcc4606.登錄:POST請求參數(shù):NameValuetermina

22、lAndroid4系統(tǒng)設計mcc460CC86markethtxqjpc(極光推送)vc(驗證碼)4173934.1設計指導思想和原則概要設計在系統(tǒng)需求分析階段,搞清楚了軟件“做什么”的問題,形成了目標系統(tǒng)的邏輯模型。現(xiàn)在我們所要做的就是要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,即著手實現(xiàn)系統(tǒng)的需求。首先,我們需要描述的是系統(tǒng)的總的體系結(jié)構(gòu)。4.2詳細設計軟件設計原則根據(jù)用戶的體驗方便快捷,系統(tǒng)分為四大模塊,其中專題模塊是為用戶提供每日的精選帖子,根據(jù)專題分類推薦帖子,還有豐富的壁紙,無需用戶自己找,發(fā)現(xiàn)界面是由精選,圈子,訂閱三個小界面組成的,清晰明了的為用戶提供了自己想要的選

23、擇,商城界面則是方便用戶購買自己喜歡的花,而我的界面顯示的則是自己的個人信息,用戶可以修改自己的頭像,查看自己帖子的點贊情況或者管理等一些功能。系統(tǒng)結(jié)構(gòu)設計系統(tǒng)的概要設計中最重要的就是系統(tǒng)的模塊化。模塊化是指解決一個復雜問題時自項向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。每個模塊完成一個特定的功能,所有的模塊按某種方法組織起來,成為一個整體,完成整個系統(tǒng)所要求的功能。將系統(tǒng)劃分為多個模塊是為了降低軟件系統(tǒng)的復雜性,提高可讀性、可維護性,但模塊的劃分不能是任意的,應盡量保持其獨立性。也就是說,每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單,即盡量做到高內(nèi)聚低耦合,提高模

24、塊的獨立性,為設計高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)在系統(tǒng)的概要設計中采用結(jié)構(gòu)化設計以需求分析階段產(chǎn)生的數(shù)據(jù)流圖為基礎(chǔ),按一定的步驟映射成軟件結(jié)構(gòu)。首先將整個系統(tǒng)化分為幾個小問題,小模塊然后,進一步細分模塊,添加細節(jié)。4.3系統(tǒng)的詳細設計該項目采用MVP架構(gòu),該架構(gòu)是Android平臺MVC框架的升級,MVC全稱是Model-View-Controller,是模型(model)視圖(view)控制器(controller)的縮寫。MVC是一種框架模式而非設計模式,GOF把MVC看作是3種設計模式:觀察者模式、策略模式與組合模式的合體,而核心是觀察者模式。簡而言之,框架是大智慧,用來對軟件設計進行分工;設

25、計模式是小技巧,對具體問題提出解決方案,以提高代碼復用率,降低耦合度。MVP架構(gòu)是在MVC的基礎(chǔ)上進行的升級,MVP模式是MVC模式的一個演化版本,MVP全稱Model-View-Presenter。目前MVP在Android應用開發(fā)中越來越重要了。在Android中,業(yè)務邏輯和數(shù)據(jù)存取是緊緊耦合的,很多缺乏經(jīng)驗的開發(fā)者很可能會將各種各樣的業(yè)務邏輯塞進某個Activity、Fragment或者自定義View中,這樣會使得這些組件的單個類型臃腫不堪。如果不將具體的業(yè)務邏輯抽離出來,當UI變化時,你就需要去原來的View中抽離具體業(yè)務邏輯,這必然會很麻煩并且易出錯。MVP模式會解除View與Mod

26、el的耦合,有效的降低View的復雜性。同時又帶來了良好的可擴展性、可測試性,保證系統(tǒng)的整潔性和靈活性。MVP模式可以分離顯示層與邏輯層,它們之間通過接口進行通信,降低耦合。理想化的MVP模式可以實現(xiàn)同一份邏輯代碼搭配不同的顯示界面,因為它們之間并不依賴與具體,而是依賴于抽象。這使得Presenter可以運用于任何實現(xiàn)了View邏輯接口的UI,使之具有更廣泛的適用性,保證了靈活度。MVP模式的三個角色Presenter-交互中間人:Presenter主要作為溝通View與Model的橋梁,它從Model層檢索數(shù)據(jù)后,返回給View層,使得View與Model之間沒有耦合,也將業(yè)務邏輯從View

27、角色上抽離出來。View-用戶界面:View通常是指Activity、Fragment或者某個View控件,它含有一個Presenter成員變量。通常View需要實現(xiàn)一個邏輯接口,將View上的操作轉(zhuǎn)交給Presenter進行實現(xiàn),最后,Presenter調(diào)用View邏輯接口將結(jié)果返回給View元素。Model-數(shù)據(jù)的存?。篗odel角色主要是提供數(shù)據(jù)的存取功能。Presenter需要通過Model層存儲、獲取數(shù)據(jù),Model就像一個數(shù)據(jù)倉庫。更直白的說,Model是封裝了數(shù)據(jù)庫DAO或者網(wǎng)絡獲取數(shù)據(jù)的角色,或者兩種數(shù)據(jù)方式獲取的集合。項目中列表視圖采用第三方庫XRecyclerView,該框

28、架繼承自RecyclerView,在RecyclerView的基礎(chǔ)上進行了封裝,提供了一系列的下拉刷新以及上拉加載更多的方法,并且在其中提供了默認的實現(xiàn),非常簡單易于使用;網(wǎng)絡請求采用谷歌官方出品的網(wǎng)絡請求框架Volley,該框架具有自動調(diào)度網(wǎng)絡請求、支持多個并發(fā)的網(wǎng)絡連接、通過使用標準的HTTP緩存機制保持磁盤和內(nèi)存響應的一致、支持請求優(yōu)先級、支持取消請求的強大API,可以取消單個請求或多個、易于定制、便于正確的更新UI和獲取數(shù)據(jù)、包含調(diào)試和追蹤工具的特點;數(shù)據(jù)解析采用的是谷歌官方出品的數(shù)據(jù)解析框架Gson,該框架可以直接把請求回來的JSON數(shù)據(jù)解析成實體類,配合AndroidStudio中

29、的GsonFormat插件可以達到快速開發(fā)的效果;5系統(tǒng)實現(xiàn)5.1系統(tǒng)物理結(jié)構(gòu)77773F1瞬Android0丨幸獲取單一實例瞬Android0丨幸獲取單一實例嚴tfappDmanifests口尸ElactivityEadapter卜匡applicationEbenIIcallback卜EJconfigEcontractfragment卜E3modltLpresenter|Qutilswidget(androidTe$1jcom.serenade.huatianxlaoqj(test)KQresWCradleScripts5.2主要類的實現(xiàn)AppManager.java:采用單例模式來構(gòu)建一個

30、全局的AppManager,該類用來存儲已經(jīng)實例化的Activity對象,模擬了Android中的Activity棧結(jié)構(gòu),提供了一系列管理Activity的方法,如退出所有Activity等方法。publicclassAppManagerprivatestaticStackactivities;/*構(gòu)造方法私有化*/privateAppManager()/*實例化單例的靜態(tài)內(nèi)部類*/privatestaticclassAppManagerHolderpublicstaticfinalAppManagerinstanee=newAppManager();/*return單一實例*/publics

31、taticAppManagergetAppManager()returnAppManagerHolder.instance;/結(jié)束所有Activity*/publicvoidfinishAllActivity()for(inti=0;iactivities.size();i+)if(null!=activities.get(i)activities.get(i).finish();*添加Activity到堆棧*paramactivity*/publicvoidaddActivity(Activityactivity)if(activities=null)activities=newStack(

32、);activities.add(activity);/*結(jié)束指定的Activity*paramactivity*/publicvoidfinishActivity(Activityactivity)if(activity!=null)activities.remove(activity);activity.finish();activity=null;/*結(jié)束當前Activity(堆棧中最后一個壓入的)*/publicvoidfinishActivity()Activityactivity=activities.lastElement();finishActivity(activity);a

33、ctivities.clear();/*獲取棧頂Activity*/publicActivitygetTopActivity()Activityactivity=activities.lastElement();returnactivity;/*/*完成登錄/*/publicvoidfinishLogin()/for(inti=0;i=Build.VERSION_CODES.LOLLIPOP)getWindow().setStatusBarColor(Color.parseColor(setStatusBarColor();super.onCreate(savedInstanceState);

34、/設置布局setContentView(setLayout();/添加Activity到管理堆棧AppManager.getAppManager().addActivity(this);/綁定控件initView();/設置UIonPrepare();/*設置布局*return布局資源id*/publicabstractintsetLayout();/*初始化控件*/publicabstractvoidinitView();publicStringsetStatusBarColor()return#303F9F;/*基本操作*/publicabstractvoidonPrepare();/*是

35、否顯示ActionBar*returntrue顯示false不顯示*/publicbooleanisActionBarEnabled()returntrue;/publicvoidrequestRuntimePermission(Stringpermissions,PermissionListenerlistener)/ActivitytopActivity=AppManager.getAppManager().getTopActivity();/if(topActivity=null)/return;/mListener=listener;/ListpermissionList=newArr

36、ayList();/for(Stringpermission:permissions)/if(ContextCompat.checkSelfPermission(topActivity,permission)!=PackageManager.PERMISSION_GRANTED)/permissionList.add(permission);/if(!permissionList.isEmpty()/ActivityCompat.requestPermissions(topActivity,permissionList.toArray(newStringpermissionList.size(

37、),1);/else/mListener.onGranted();/deniedPermissions.add(permission);if(deniedPermissions.isEmpty()mListener.onGranted();elsemListener.onDenied(deniedPermissions);break;default:/Override/publicvoidonRequestPermissionsResult(intrequestCode,NonNullStringpermissions,NonNullintgrantResults)/super.onReque

38、stPermissionsResult(requestCode,permissions,grantResults);/switch(requestCode)/case1:if(grantResults.length0)ListdeniedPermissions=newArrayList();for(inti=0;igrantResults.length;i+)intgrantResult=grantResultsi;Stringpermission=permissionsi;!=!=if(grantResultPackageManager.PERMISSION_GRANTED)/break;/

39、OverrideprotectedvoidonDestroy()super.onDestroy();/從管理堆棧移除ActivityAppManager.getAppManager().finishActivity(this);publicvoidshowToast(Stringcontent)Toast.makeText(this,content,Toast.LENGTH_SHORT).show();BaseFragment.javapublicabstractclassBaseFragmentextendsFragmentimplementsBaseContract.Viewprotect

40、edTmPresenter;NullableOverridepublicViewonCreateView(LayoutInflaterinflater,NullableViewGroupcontainer,NullableBundlesavedInstanceState)Viewview=inflater.inflate(setLayout(),container,false);mPresenter=createPresenter();mPresenter.attachView(this);initView(view);onPrepare();returnview;protectedabstr

41、actvoidinitView(Viewview);OverridepublicvoidonDestroyView()super.onDestroyView();mPresenter.detachView();publicabstractTcreatePresenter();publicabstractvoidonPrepare();publicabstractintsetLayout();publicvoidshowToast(Stringtext)Toast.makeText(getActivity(),+text,Toast.LENGTH_SHORT).show();BasePresenter.javapublicabstractclassBasePresenterimplementsBaseContract.PresenterprotectedTmView;/View接口類型的弱引用protectedVmModel;/Model接口publicBasePresenter()mModel=createModel();publicabstractVcreateModel();publicvoidattachView(Tview)this.mView=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論