android畢業(yè)設(shè)計論文報告_第1頁
android畢業(yè)設(shè)計論文報告_第2頁
android畢業(yè)設(shè)計論文報告_第3頁
android畢業(yè)設(shè)計論文報告_第4頁
android畢業(yè)設(shè)計論文報告_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-. z. . - . 可修編. 摘要現(xiàn)在,人們越來越重視互聯(lián)網(wǎng)。花田小憩可以為花卉愛好者們提供一個交流以及交易的平臺,在這里花卉愛好者們可以的到最新的花卉信息以及購置到喜歡的花卉品種。本文綜合運用Android技術(shù)、Android Studio開發(fā)平臺、JSON等技術(shù)和工具對花田小憩進展了分析、設(shè)計和實現(xiàn)。給出了系統(tǒng)的功能分析、環(huán)境和質(zhì)量要求;建立了系統(tǒng)軟、硬件體系構(gòu)造模型;完成了功能模塊設(shè)計和數(shù)據(jù)接口的對接;同時確定了各個功能模塊的測試環(huán)境,并制定了測試方案對各個模塊進展有效的測試和分析;最終實現(xiàn)了Android平臺端的應(yīng)用。工程采用MVP架構(gòu),MVP模式是MVC模式的一個演化版本,MVP

2、全稱Model-View-Presenter。MVP模式會解除View與Model的耦合,有效的降低View的復(fù)雜性。同時又帶來了良好的可擴展性、可測試性,保證系統(tǒng)的整潔性和靈活性。MVP模式可以別離顯示層與邏輯層,它們之間通過接口進展通信,降低耦合。理想化的MVP模式可以實現(xiàn)同一份邏輯代碼搭配不同的顯示界面,因為它們之間并不依賴與具體,而是依賴于抽象。這使得Presenter可以運用于任何實現(xiàn)了View邏輯接口的UI,使之具有更廣泛的適用性,保證了靈活度。總之,本系統(tǒng)可以通過對智能家居系統(tǒng)的控制和受控方狀態(tài)的反應(yīng),從而使操作者可以及時掌握受控方信息,使其到達交互式智能化。更好地效勞于我們的生

3、活,使人們的日常生活更加方便、智能、快捷。關(guān)鍵詞:花卉;Android;JSON;MVP;在線購物AbstractNowadays , people are paying more and more attention to the internet. Flower nap provides a platform for the e*change and e*change of flower lovers , where the flower lovers can get the latest information about flowers and buy the flowers they

4、 like.In this paper , Android technology , Android Studio development platform , JSON and other techniques and tools are used to analyze , design and implement the nap. The analysis , given the function of the system environment and quality requirements; establish a system structure model of softwar

5、e and hardware system; the pletion of the docking module design and data interface; while determining the test environment of each module , and developed a test scheme for testing and analysis of the effective of each module; finally realizes the application of Android platform the end of the.The pr

6、oject uses the MVP architecture , and the MVP model is an evolved version of the MVC schema , MVP , full name Model-View-Presenter. The MVP pattern removes the coupling of View and Model , effectively reducing the ple*ity of View. At the same time , it also brings good scalability and testability ,

7、and ensures the neatness and fle*ibility of the system. The MVP model can separate the display layer from the logical layer , through which they can municate and reduce the coupling. The idealized MVP model can implement the same logical code with different display interfaces , because they do not d

8、epend on and depend on abstractions , but depend on abstractions. This allows the Presenter to be applied to any UI that implements the View logical interface , making it more widely applicable and providing fle*ibility.In a word , the system can control the intelligent home system and the feedback

9、of the controlled state , so that the operator can grasp the information of the accuser in time and make it interactive and intelligent. Better serve our life , make peoples daily life more convenient , intelligent and quick.keywords: flower; Android; JSON; MVP; shopping online-. z.目錄 TOC o 1-2 h z

10、u HYPERLINK l _Toc4845532081 緒論 PAGEREF _Toc484553208 h 1HYPERLINK l _Toc4845532091.1 研發(fā)背景 PAGEREF _Toc484553209 h 1HYPERLINK l _Toc4845532101.2 主要研究內(nèi)容 PAGEREF _Toc484553210 h 1HYPERLINK l _Toc4845532111.3 論文組織構(gòu)造 PAGEREF _Toc484553211 h 1HYPERLINK l _Toc4845532122 課題研究相關(guān)技術(shù)綜述 PAGEREF _Toc484553212 h

11、1HYPERLINK l _Toc4845532132.1 Android 系統(tǒng) PAGEREF _Toc484553213 h 1HYPERLINK l _Toc4845532142.2 Sqlite數(shù)據(jù)庫 PAGEREF _Toc484553214 h 1HYPERLINK l _Toc4845532152.3 JSON數(shù)據(jù) PAGEREF _Toc484553215 h 1HYPERLINK l _Toc4845532162.4 Java環(huán)境 PAGEREF _Toc484553216 h 1HYPERLINK l _Toc4845532172.5 設(shè)備環(huán)境 PAGEREF _Toc48

12、4553217 h 1HYPERLINK l _Toc4845532183 系統(tǒng)需求分析 PAGEREF _Toc484553218 h 1HYPERLINK l _Toc4845532193.1 需求調(diào)查 PAGEREF _Toc484553219 h 1HYPERLINK l _Toc4845532203.2 功能分析 PAGEREF _Toc484553220 h 1HYPERLINK l _Toc4845532214 系統(tǒng)需求分析 PAGEREF _Toc484553221 h 1HYPERLINK l _Toc4845532224.1 系統(tǒng)設(shè)計環(huán)境 PAGEREF _Toc48455

13、3222 h 1HYPERLINK l _Toc4845532234.2 系統(tǒng)體系構(gòu)造設(shè)計 PAGEREF _Toc484553223 h 1HYPERLINK l _Toc4845532245.1 工程設(shè)計 PAGEREF _Toc484553224 h 1HYPERLINK l _Toc4845532255.2 數(shù)據(jù)接口設(shè)計 PAGEREF _Toc484553225 h 1HYPERLINK l _Toc4845532266 系統(tǒng)實現(xiàn) PAGEREF _Toc484553226 h 1HYPERLINK l _Toc4845532276.2 系統(tǒng)測試 PAGEREF _Toc484553

14、227 h 1HYPERLINK l _Toc4845532287 總結(jié)與展望 PAGEREF _Toc484553228 h 1HYPERLINK l _Toc4845532297.1 總結(jié) PAGEREF _Toc484553229 h 1HYPERLINK l _Toc4845532307.2 展望 PAGEREF _Toc484553230 h 1HYPERLINK l _Toc484553231參考文獻 PAGEREF _Toc484553231 h 1HYPERLINK l _Toc484553232致謝 PAGEREF _Toc484553232 h 1HYPERLINK l _

15、Toc484553233附錄一:英文原文 PAGEREF _Toc484553233 h 1HYPERLINK l _Toc484553234附錄二:中文譯文 PAGEREF _Toc484553234 h 1-. z.1 緒論1.1 研發(fā)背景近些年,隨著Internet和計算機網(wǎng)絡(luò)通信技術(shù)的飛速開展、人們生活水平的不斷提高,以及人們精神需求的不斷增長,移動應(yīng)用已幾乎成為每個人都會使用的東西,無論男女老少,就比方我外公,前幾年就在學(xué)習(xí)怎么使用瀏覽器百度養(yǎng)生知識,雖然我外公之前沒有接觸過這些,但是在我的耐心講解下,而且移動應(yīng)用的操作也比擬好上手,我外公還是輕松地學(xué)會了。大家對移動應(yīng)用充滿了好奇心

16、以及求知欲,并且隨著移動手機越來越成為人們生活中不可缺失的一局部,移動應(yīng)用便隨著這個趨勢大大開展了起來。然后互聯(lián)網(wǎng)+模式順勢而生,它能夠做到讓人們不出門,甚至是躺在床上,光是動動手指就可以獲取各種最新信息或者購置遠在天邊的商品,給人們的生活帶來了極大的便利。再說到我這個軟件,花田小憩是一款花藝愛好者的App,它不僅僅是有專業(yè)的花藝教學(xué)內(nèi)容,它還是一個活潑的百萬花藝愛好者社區(qū)。在這里,你可以看到各式各樣的話題討論,不僅限于花藝,還延伸至家居、植物、雜物等生活美學(xué)領(lǐng)域。花田小憩還提供了眾多高清花藝壁紙,供你下載換桌面,可以適配各種屏幕尺寸。手機的美觀再也不愁了?;ㄌ镄№且豢罨ㄋ噽酆谜卟蝗蒎e過的生

17、活應(yīng)用。在這里,收獲的不僅僅是花藝知識,還有同道中人和美的生活方式。讓你的節(jié)奏,慢下來,美下去。作為一個植物生活美學(xué)平臺,花田小憩還提供跟花藝與生活美學(xué)相關(guān)的物品販賣,如鮮花、器皿、干花、書籍等。你可以在這里尋找生活的美?;ㄌ镄№瑒?chuàng)辦初衷是想為所有喜歡植物和美學(xué)的人們,通過花草與時間的疊加,營造一個小而美的精致生活。希望能讓用戶在繁瑣的生活之中,享受一種靜雅恬淡的生活之美,制造一份專屬的美學(xué)生活態(tài)度。1.2 主要研究內(nèi)容本文采用面向?qū)ο筌浖_發(fā)方法,遵照軟件工程的概念、原理和方法,利用Android Studio開發(fā)平臺控制系統(tǒng)的分析、設(shè)計和實現(xiàn)。所開發(fā)的控制系統(tǒng)主要具備以下功能:1瀏覽帖子:

18、可以通過App來查看其他用戶發(fā)布的與花卉有關(guān)的帖子。2購置花卉:可以通過App來進展在線的花卉購置。3發(fā)布帖子:可以發(fā)布帖子,并且上傳圖片以及選擇分類等。1.3 論文組織構(gòu)造本文共分七章,各章的主要內(nèi)容如下:第一章“緒論局部主要綜述了系統(tǒng)的開發(fā)背景、論文研究的主要內(nèi)容以及組織構(gòu)造。第二章“課題研究相關(guān)技術(shù)綜述局部對論文研究中所用到的開發(fā)工具、平臺及技術(shù)、設(shè)備環(huán)境做了簡單的介紹。第三章“系統(tǒng)需求分析局部主要描述了系統(tǒng)的需求分析過程,包括系統(tǒng)的需求調(diào)查、功能分析環(huán)境和質(zhì)量要求。第四章“系統(tǒng)總體設(shè)計局部對系統(tǒng)的總體設(shè)計過程做了闡述,主要包括系統(tǒng)的設(shè)計環(huán)境,系統(tǒng)體系構(gòu)造和數(shù)據(jù)庫的邏輯設(shè)計。第五章“系統(tǒng)

19、詳細設(shè)計局部表達了系統(tǒng)的詳細設(shè)計過程,包括工程設(shè)計、系統(tǒng)的功能模塊設(shè)計和數(shù)據(jù)接口的設(shè)計。第六章“系統(tǒng)實現(xiàn)局部對系統(tǒng)實現(xiàn)和測試做了概述,主要包括系統(tǒng)各功能模塊的實現(xiàn)、核心技術(shù)編碼、系統(tǒng)的測試過程等。第七章“總結(jié)與展望局部講述了對系統(tǒng)開發(fā)的總結(jié)和對下一步工作的預(yù)測。2 課題研究相關(guān)技術(shù)綜述2.1 Android 系統(tǒng)Android是一種以l i n u *為根底的開放源代碼操作系統(tǒng),主要使用于便攜設(shè)備。目前尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓或“安致。Android操作系統(tǒng)最初由Andy Rubin開發(fā),最初主要支持手機。2005年由谷歌收購注資,并組建開放手機聯(lián)盟開發(fā)改進,逐漸擴展到

20、平板電腦及其他領(lǐng)域上。Android的主要競爭對手是蘋果公司的i o s以及RIM的Blackberry OS。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分為四個層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運行庫層和l i n u *核心層。 Android是以Linu*為核心的手機操作平臺,作為一款開放式的操作系統(tǒng),隨著Android的快速開展,如今已允許開發(fā)

21、者使用多種編程語言來開發(fā)Android應(yīng)用程序,而不再是以前只能使用Java開發(fā)Android應(yīng)用程序的單一局面,因而受到眾多開發(fā)者的歡送,成為真正意義上的開放式操作系統(tǒng)。在Android中,開發(fā)者可以使用Java作為編程語言來開發(fā)應(yīng)用程序,也可以通過NDK使用C/C+作為編程語言來開發(fā)應(yīng)用程序,也可使用SL4A來使用其他各種腳本語言進展編程如:python、l u a、t cl、p h p等等,還有其他諸如:QTqt for android、Monomono for android等一些著名編程框架也開場支持Android編程,甚至通過Mon o Droid,開發(fā)者還可以使用C#作為編程語言

22、來開發(fā)應(yīng)用程序。另外,谷歌還在2009年特別發(fā)布了針對初學(xué)者的Android Simple語言,該語言類似Basic語言。而在網(wǎng)頁編程語言方面,JavaScript , HTML5等等都已經(jīng)支持Android開發(fā)。2.1.1 Android 根本架構(gòu)Android系統(tǒng)架構(gòu)自上而下可分為應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運行庫層、系統(tǒng)內(nèi)核層四個層次,如圖2.1所示。圖 2.1 Android 系統(tǒng)架構(gòu)圖1應(yīng)用程序Applications該層提供一些核心應(yīng)用程序包,例如電子、短信、日歷、地圖、瀏覽器和聯(lián)系人管理等。同時,開發(fā)者可以利用Java語言設(shè)計和編寫屬于自己的應(yīng)用程序,而這些程序與那些核心應(yīng)用

23、程序彼此平等、友好共處。2應(yīng)用程序框架Application Framework該層是Android應(yīng)用開發(fā)的根底,開發(fā)人員大局部情況是在和她打交道。應(yīng)用程序框架層包括活動管理器、窗口管理器、內(nèi)容提供者、視圖系統(tǒng)、包管理器、管理器、資源管理器、位置管理器、通知管理器和*MPP效勞十個局部。在Android平臺上,開發(fā)人員可以完全訪問核心應(yīng)用程序所使用的API框架。并且,任何一個應(yīng)用程序都可以發(fā)布自身的功能模塊,而其他應(yīng)用程序則可以使用這些已發(fā)布的功能模塊。基于這樣的重用機制,用戶就可以方便地替換平臺本身的各種應(yīng)用程序組件。3系統(tǒng)運行庫Libraries系統(tǒng)庫包括九個子系統(tǒng),分別是圖層管理、媒體

24、庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android運行時包括核心庫和Dalvik虛擬機,前者既兼容了大多數(shù)Java語言所需要調(diào)用的功能函數(shù),又包括了Android的核心庫,比方android.os、android.NET、android.media等等。后者是一種基于存放器的java虛擬機,Dalvik虛擬機主要是完成對生命周期的管理、堆棧的管理、線程的管理、平安和異常的管理以及垃圾回收等重要功能。4系統(tǒng)內(nèi)核Linu* KernelAndroid核心系統(tǒng)效勞依賴于Linu*2.6內(nèi)核,如平安性、內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)

25、動模型。Linu*內(nèi)核也是作為硬件與軟件棧的抽象層。驅(qū)動:顯示驅(qū)動、攝像頭驅(qū)動、鍵盤驅(qū)動、WiFi驅(qū)動、Audio驅(qū)動、flash內(nèi)存驅(qū)動、BinderIPC驅(qū)動、電源管理等。2.1.2 Android 開發(fā)環(huán)境搭建Android 平臺為開發(fā)者提供了免費并且開放的開發(fā)環(huán)境,而且使用其提供的幫助文檔和工具,開發(fā)者能夠快速地編寫出需要的APP。學(xué)習(xí)Android開發(fā)的第一步就是搭建Android的開發(fā)環(huán)境,開發(fā)環(huán)境的搭建步驟如下:1第一步:安裝JDK下載Oracle公司的JDK可以百度“JDK進入Oracle公司的JDK下載頁面,選擇自己電腦系統(tǒng)的對應(yīng)版本即可。JDK的全稱是Java SE Dev

26、elopment Kit,也就是Java 開發(fā)工具箱。SE表示標(biāo)準(zhǔn)版。JDK是Java的核心,包含了Java的運行環(huán)境Java Runtime Environment,一堆Java工具和給開發(fā)者開發(fā)應(yīng)用程序時調(diào)用的Java類庫。JDK包含的根本工具主要有:javac:Java編譯器,將源代碼轉(zhuǎn)成字節(jié)碼。jar:打包工具,將相關(guān)的類文件打包成一個文件。javadoc:文檔生成器,從源碼注釋中提取文檔。jdb:debugger,調(diào)試查錯工具。java:運行編譯后的java程序。2配置JDK的變量環(huán)境為了配置JDK的系統(tǒng)變量環(huán)境,我們需要設(shè)置三個系統(tǒng)變量,分別是JAVA_HOME,Path和CLAS

27、SPATH。下面是這三個變量的設(shè)置防*。JAVA_HOME先設(shè)置這個系統(tǒng)變量名稱,變量值為JDK在你電腦上的安裝路徑:。創(chuàng)立好后則可以利用%JAVA_HOME%作為JDK安裝目錄的統(tǒng)一引用路徑。PATHPATH屬性已存在,可直接編輯,在原來變量后追加:;%JAVA_HOME%bin;%JAVA_HOME%jrebin 。CLASSPATH 設(shè)置系統(tǒng)變量名為:CLASSPATH 變量值為:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar 。注意變量值字符串前面有一個.表示當(dāng)前目錄,設(shè)置CLASSPATH 的目的,在于告訴Java執(zhí)行環(huán)境,在哪些目錄下可

28、以找到您所要執(zhí)行的Java程序所需要的類或者包。3下載 Android StudioAndroid Studio 是一個Android集成開發(fā)工具,基于IntelliJ IDEA. 類似 Eclipse ADT,Android Studio 提供了集成的 Android 開發(fā)工具用于開發(fā)和調(diào)試。2013年5月16日,在I/O大會上,谷歌推出新的Android開發(fā)環(huán)境Android Studio,并對開發(fā)者控制臺進展了改進,增加了五個新的功能。Android Studio是谷歌推出了新的Android開發(fā)環(huán)境,開發(fā)者可以在編寫程序的同時看到自己的應(yīng)用在不同尺寸屏幕中的樣子。2015年5月29日,

29、在谷歌I/O開發(fā)者大會上,谷歌發(fā)布Android Studio 1.3版,支持C+編輯和查錯功能。Android Studio 1.3版開發(fā)碼代碼變得更加容易,速度提升,而且支持C+編輯和查錯功能。4下載Android SDK配置了JDK變量環(huán)境,安裝好了Eclipse,這個時候如果只是開發(fā)普通的JAVA應(yīng)用程序,則Java的開發(fā)環(huán)境已經(jīng)準(zhǔn)備好了。我們要通過Eclipse來開發(fā)Android應(yīng)用程序,則我們需要下載Android SDKSoftware Development Kit和在Eclipse安裝ADT插件,這個插件能讓Eclipse和Android SDK關(guān)聯(lián)起來。Android S

30、DK提供了開發(fā)Android應(yīng)用程序所需的API庫和構(gòu)建、測試和調(diào)試Android應(yīng)用程序所需的開發(fā)工具。下載后雙擊安裝,指定Android SDK的安裝目錄,為了方便使用Android SDK包含的開發(fā)工具,我們在系統(tǒng)環(huán)境變量中的Path設(shè)置Android SDK的安裝目錄下的tools目錄。在Android SDK的安裝目錄下,雙擊“SDK Manager.e*e,翻開Android SDK Manager,Android SDK Manage負責(zé)下載或更新不同版本的SDK包,我們看到默認安裝的Android SDK Manager只安裝了一個版本的sdk tools。2.2 Sqlite

31、數(shù)據(jù)庫SQLite是D.Richard Hipp用C語言編寫的開源嵌入式數(shù)據(jù)庫引擎。它支持大多數(shù)的SQL92標(biāo)準(zhǔn),并且可以在所有主要的操作系統(tǒng)上運行。SQLite由以下幾個局部組成:SQL編譯器、內(nèi)核、后端以及附件。SQLite通過利用虛擬機和虛擬數(shù)據(jù)庫引擎( VDBE ),是調(diào)試、修改和擴展SQLite的內(nèi)核變得更加方便。所有SQL語句都被編譯成易讀的、可以在SQLite虛擬機中執(zhí)行的程序集。SQLite的整體構(gòu)造圖如下:值得一提的是,袖珍型的SQLite竟然可以支持高達2TB大小的數(shù)據(jù)庫,每個數(shù)據(jù)庫都是以單個文件的形式存在,這些數(shù)據(jù)都是以B-Tree的數(shù)據(jù)構(gòu)造形式存儲在磁盤上。在事務(wù)處理方

32、面,SQLite通過數(shù)據(jù)庫級上的獨占性和共享鎖來實現(xiàn)獨立事務(wù)處理。這意味著多個進程可以在同一時間從同一數(shù)據(jù)庫讀取數(shù)據(jù),但只有一個可以寫入數(shù)據(jù)。在*個進程或線程想數(shù)據(jù)庫執(zhí)行寫操作之前,必須獲得獨占鎖。在獲得獨占鎖之后,其他的讀或?qū)懖僮鲗⒉粫侔l(fā)生。SQLite采用動態(tài)數(shù)據(jù)類型,當(dāng)*個值插入到數(shù)據(jù)庫時,SQLite將會檢查它的類型,如果該類型與關(guān)聯(lián)的列不匹配,SQLite則會嘗試將該值轉(zhuǎn)換成該列的類型,如果不能轉(zhuǎn)換,則該值將作為本身的類型存儲,SQLite稱這為“弱類型。但有一個特例,如果是INTEGER PRIMARY KEY,則其他類型不會被轉(zhuǎn)換,會報一個“datatype missmatch

33、的錯誤。概括來講,SQLite支持NULL、INTEGER、REAL、TE*T和BLOB數(shù)據(jù)類型,分別代表空值、整型值、浮點值、字符串文本、二進制對象。SQLite的特點大致總結(jié)如下: 1.輕量級使用 SQLite 只需要帶一個動態(tài)庫,就可以享受它的全部功能,而且那個動態(tài)庫的尺寸想當(dāng)小。 2.獨立性 SQLite 數(shù)據(jù)庫的核心引擎不需要依賴第三方軟件,也不需要所謂的“安裝。 3.隔離性 SQLite 數(shù)據(jù)庫中所有的信息比方表、視圖、觸發(fā)器等都包含在一個文件夾內(nèi),方便管理和維護。 4.跨平臺 SQLite 目前支持大局部操作系統(tǒng),不至電腦操作系統(tǒng)更在眾多的手機系統(tǒng)也是能夠運行,比方:Androi

34、d和IOS。 5.多語言接口 SQLite 數(shù)據(jù)庫支持多語言編程接口。 6.平安性2.3 JSON數(shù)據(jù)JSON( JavaScript Object Notation , JS 對象標(biāo)記 ) 是一種輕量級的數(shù)據(jù)交換格式。它基于 ECMAScript ( w3c制定的js規(guī)* )的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次構(gòu)造使得 JSON 成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。在 JS 語言中,一切都是對象。因此,任何支持的類型都可以通過 JSON 來表示,例如字符串、數(shù)字、對象、數(shù)組等。但是對象和數(shù)組是

35、比擬特殊且常用的兩種類型:對象表示為鍵值對、數(shù)據(jù)由逗號分隔、花括號保存對象、方括號保存數(shù)組。在 JS 語言中,一切都是對象。因此,任何支持的類型都可以通過 JSON 來表示,例如字符串、數(shù)字、對象、數(shù)組等。但是對象和數(shù)組是比擬特殊且常用的兩種類型。對象:對象在 JS 中是使用花括號包裹 起來的內(nèi)容,數(shù)據(jù)構(gòu)造為 key1:value1 , key2:value2 , . 的鍵值對構(gòu)造。在面向?qū)ο蟮恼Z言中,key 為對象的屬性,value 為對應(yīng)的值。鍵名可以使用整數(shù)和字符串來表示。值的類型可以是任意類型。數(shù)組:數(shù)組在 JS 中是方括號 包裹起來的內(nèi)容,數(shù)據(jù)構(gòu)造為 java , javascrip

36、t , vb , . 的索引構(gòu)造。在 JS 中,數(shù)組是一種比擬特殊的數(shù)據(jù)類型,它也可以像對象那樣使用鍵值對,但還是索引使用得多。同樣,值的類型可以是任意類型。2.4 Java環(huán)境2.4.1 Java簡介Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C+語言的各種優(yōu)點,還摒棄了C+里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進展復(fù)雜的編程。Java具有簡單性、面向?qū)ο?、分布式、強健性、平安性、平臺獨立與可移植性、多線程、動態(tài)性等特點。Java可以編寫桌面應(yīng)用程序、Web

37、應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。2.4.2 Java特性1簡單性Java看起來設(shè)計得很像C+,但是為了使語言小和容易熟悉,設(shè)計者們把C+語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C+的操作符過載overload和多繼承特征,并且不使用主文件,免去了預(yù)處理程序。因為Java沒有構(gòu)造,數(shù)組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發(fā)上。2面向?qū)ο驤ava是

38、一個面向?qū)ο蟮恼Z言。對程序員來說,這意味著要注意應(yīng)中的數(shù)據(jù)和操縱數(shù)據(jù)的方法method,而不是嚴(yán)格地用過程來思考。在一個面向?qū)ο蟮南到y(tǒng)中,類class是數(shù)據(jù)和操作數(shù)據(jù)的方法的集合。數(shù)據(jù)和方法一起描述對象object的狀態(tài)和行為。每一對象是其狀態(tài)和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。Java還包括一個類的擴展集合,分別組成各種程序包Package,用戶可以在自己的程序中使用。例如,Java提供產(chǎn)生圖形用戶接口部件的類java.awt包,這里awt是抽象窗口工具集abstract win

39、dowing toolkit的縮寫,處理輸入輸出的類java.io包和支持網(wǎng)絡(luò)功能的類包。3分布性Java設(shè)計成支持在網(wǎng)絡(luò)上應(yīng)用,它是分布式語言。Java既支持各種層次的網(wǎng)絡(luò)連接,又以Socket類支持可靠的流stream網(wǎng)絡(luò)連接,所以用戶可以產(chǎn)生分布式的客戶機和效勞器。網(wǎng)絡(luò)變成軟件應(yīng)用的分布運載工具。Java程序只要編寫一次,就可到處運行。4編譯和解釋性Java編譯程序生成字節(jié)碼byte-code,而不是通常的機器碼。Java字節(jié)碼提供對體系構(gòu)造中性的目標(biāo)文件格式,代碼設(shè)計成可有效地傳送程序到多個平臺。Java程序可以在任何實現(xiàn)了Java解釋程序和運行系統(tǒng)run-time system的系統(tǒng)

40、上運行。在一個解釋性的環(huán)境中,程序開發(fā)的標(biāo)準(zhǔn)“階段大大消失了。如果說Java還有一個階段,它只是把新類裝進環(huán)境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導(dǎo)致快速程序開發(fā)。這是一個與傳統(tǒng)的、耗時的“編譯、和測試形成鮮明比照的精巧的開發(fā)過程。5穩(wěn)健性Java原來是用作編寫消費類家用電子產(chǎn)品軟件的語言,所以它是被設(shè)計成寫高可靠和穩(wěn)健軟件的。Java消除了*些編程錯誤,使得用它寫可靠軟件相當(dāng)容易。Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風(fēng)格的隱式聲明。這些嚴(yán)格的要求保證編譯程序能捕捉調(diào)用錯誤,這就

41、導(dǎo)致更可靠的程序。可靠性方面最重要的增強之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和訛誤數(shù)據(jù)的可能性。類似地,Java自動的“無用單元收集預(yù)防存儲漏泄和其它有關(guān)動態(tài)存儲分配和解除分配的有害錯誤。Java解釋程序也執(zhí)行許多運行時的檢查,諸如驗證所有數(shù)組和串訪問是否在界限之內(nèi)。異常處理是Java中使得程序更穩(wěn)健的另一個特征。異常是*種類似于錯誤的異常條件出現(xiàn)的信號。使用try/catch/finally語句,程序員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復(fù)的任務(wù)6平安性Java的存儲分配模型是它防御惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內(nèi)幕和

42、偽造指針去指向存儲器。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜想類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程序決定實際存儲地址。Java運行系統(tǒng)使用字節(jié)碼驗證過程來保證裝載到網(wǎng)絡(luò)上的代碼不違背任何Java語言限制。這個平安機制局部包括類如何從網(wǎng)上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預(yù)防惡意的小應(yīng)用程序用它自己的版本來代替標(biāo)準(zhǔn)Java類。7可移植性Java使得語言聲明不依賴于實現(xiàn)的方面。例如,Java顯式說明每個根本數(shù)據(jù)類型的大小和它的運算行為這些數(shù)據(jù)類型由Java語法描述。Java環(huán)境本身對新的硬件平臺和操作系

43、統(tǒng)是可移植的。Java編譯程序也用Java編寫,而Java運行系統(tǒng)用ANSIC語言編寫。8高性能Java是一種先編譯后解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設(shè)計者制作了“及時編譯程序,它能在運行時把Java字節(jié)碼翻譯成特定CPU中央處理器的機器代碼,也就是實現(xiàn)全編譯了。Java字節(jié)碼格式設(shè)計時考慮到這些“及時編譯程序的需要,所以生成機器代碼的過程相當(dāng)簡單,它能產(chǎn)生相當(dāng)好的代碼。9多線索性Java是多線索語言,它提供支持多線索的執(zhí)行也稱為輕便過程,能處理不同任務(wù),使具有線索的程序設(shè)計很容易。Java的lang包提供一個Thread類,它支持

44、開場線索、運行線索、停頓線索和檢查線索狀態(tài)的方法。Java的線索支持也包括一組同步原語。這些原語是基于監(jiān)視程序和條件變量風(fēng)*,由開發(fā)的廣泛使用的同步化方案。用關(guān)鍵詞synchronized,程序員可以說明*些方法在一個類中不能并發(fā)地運行。這些方法在監(jiān)視程序控制之下,確保變量維持在一個一致的狀態(tài)。10動態(tài)性Java語言設(shè)計成適應(yīng)于變化的環(huán)境,它是一個動態(tài)的語言。例如,Java中的類是根據(jù)需要載入的,甚至有些是通過網(wǎng)絡(luò)獲取的。2.5 設(shè)備環(huán)境設(shè)備名稱:LG Ne*us 516GB主屏尺寸:4.95英寸主屏分辨率:1920*1080像素后置攝像頭:800萬像素前置攝像頭:130萬像素電池容量:230

45、0mAh電池類型:不可拆卸式電池核心數(shù):四核內(nèi)存:2GBAndroid版本:3 系統(tǒng)需求分析3.1 需求調(diào)查通過網(wǎng)絡(luò)搜索、查閱相關(guān)資料以及與用戶進展訪談等方式,對用戶的需求進展了詳細的調(diào)研,并對用戶在環(huán)境監(jiān)測、視頻監(jiān)控、家庭管理及開關(guān)控制和場景模式等方面的需求進展了詳細的探討,確定了智能家居控制系統(tǒng)的主要功能需求。功能分解圖如圖3.1所示?;ㄌ镄№瑢n}發(fā)現(xiàn)發(fā)布帖子商城我的圖3.1 花田小憩的功能分解圖分析得主要功能如下:1專題,該頁面分為小編推薦、專題分類、每日壁紙以及每日推薦。2發(fā)現(xiàn):該頁面分為精選、圈子以及訂閱。3發(fā)布帖子:如果未登錄,點擊該按鈕跳轉(zhuǎn)到登陸頁面,如果已登錄,點擊該按鈕跳轉(zhuǎn)到

46、發(fā)布帖子頁面。4商城:可以在該頁面選購喜歡的花卉,并且參加購物車然后付款購置。5我的:可以在該頁面中管理自己的個人信息以及點贊的帖子以及評論。3.2功能分析3.2.1 系統(tǒng)框架圖根據(jù)在需求調(diào)查時得到的結(jié)果,本文通過對花田小憩系統(tǒng)功能分析,建立了系統(tǒng)的主體框架如圖3.2所示。圖3.2 花田小憩系統(tǒng)整體架構(gòu)圖3.2.2 系統(tǒng)各局部描述由圖3.2可以看出,系統(tǒng)主要包括五個局部:專題局部、發(fā)現(xiàn)局部、商城局部、發(fā)表帖子局部以及我的局部。其中,每個局部的交互過程如下:1專題局部此局部為這個系統(tǒng)的第一局部,它主要負責(zé)展示每日精選帖子、精選壁紙以及所有帖子分類。2發(fā)現(xiàn)局部此局部是用來顯示精選、圈子以及訂閱的內(nèi)

47、容。3商城此局部用來方便用戶購置各種花卉。4發(fā)表帖子此局部用于用戶發(fā)表自己的帖子。5我的此局部用戶用戶查看以及修改自己的個人信息,查看自己的帖子的點贊情況。4 系統(tǒng)需求分析4.1 系統(tǒng)設(shè)計環(huán)境4.1.1 軟件環(huán)境1Java,版本為。2Android Studio,版本為。4.1.2 硬件環(huán)境1。2Android平臺:Android版本需要高于4.4。4.2 系統(tǒng)體系構(gòu)造設(shè)計4.2.1 C/S體系構(gòu)造B/S模式,相對于C/S構(gòu)造而言易于拓展,開發(fā)周期短,而且移植方便,不須安裝客戶端( 客戶端只使用瀏覽器 ),可以跨平臺使用。但其缺點是客戶端的處理能力差,無文件和目錄的操作能力,也不容易完成與其它

48、程序之間的數(shù)據(jù)交互;同時,考慮到要保證便攜性以及平安性,由于B/S模式在數(shù)據(jù)交互時,其數(shù)據(jù)的平安性很難保證;而C/S模式卻恰恰可以封裝Client和Server之間的數(shù)據(jù)交互,也能夠很好實現(xiàn)對Client的控制和操作,所以它適合于該App系統(tǒng)??梢哉f,支持采用C/S的理由主要有:應(yīng)用的不確定性,系統(tǒng)的擴展性,逐步開發(fā)和增加新應(yīng)用的需要,適應(yīng)將來開放的異種網(wǎng)絡(luò)環(huán)境中應(yīng)用的需要,用戶數(shù)、數(shù)據(jù)量增長的可能性,適應(yīng)電腦開發(fā)、維護、供給商與相關(guān)技術(shù)人員變更的需要,有利于動態(tài)規(guī)劃與動態(tài)開發(fā)過程,對系統(tǒng)可靠性有保證。5 系統(tǒng)詳細設(shè)計5.1 工程設(shè)計5.1.1 工程構(gòu)架該工程采用MVP架構(gòu),該架構(gòu)是Andro

49、id平臺MVC框架的升級,MVC全稱是Model - View - Controller,是模型( model )視圖( view )控制器( controller )的縮寫。MVC是一種框架模式而非設(shè)計模式,GOF把MVC看作是3種設(shè)計模式:觀察者模式、策略模式與組合模式的合體,而核心是觀察者模式。簡而言之,框架是大智慧,用來對軟件設(shè)計進展分工;設(shè)計模式是小技巧,對具體問題提出解決方案,以提高代碼復(fù)用率,降低耦合度。MVP架構(gòu)是在MVC的根底上進展的升級,MVP模式是MVC模式的一個演化版本,MVP全稱Model-View-Presenter。目前MVP在Android應(yīng)用開發(fā)中越來越重要了

50、。在Android中,業(yè)務(wù)邏輯和數(shù)據(jù)存取是緊緊耦合的,很多缺乏經(jīng)歷的開發(fā)者很可能會將各種各樣的業(yè)務(wù)邏輯塞進*個Activity、Fragment或者自定義View中,這樣會使得這些組件的單個類型臃腫不堪。如果不將具體的業(yè)務(wù)邏輯抽離出來,當(dāng)UI變化時,你就需要去原來的View中抽離具體業(yè)務(wù)邏輯,這必然會很麻煩并且易出錯。MVP模式會解除View與Model的耦合,有效的降低View的復(fù)雜性。同時又帶來了良好的可擴展性、可測試性,保證系統(tǒng)的整潔性和靈活性。MVP模式可以別離顯示層與邏輯層,它們之間通過接口進展通信,降低耦合。理想化的MVP模式可以實現(xiàn)同一份邏輯代碼搭配不同的顯示界面,因為它們之間并

51、不依賴與具體,而是依賴于抽象。這使得Presenter可以運用于任何實現(xiàn)了View邏輯接口的UI,使之具有更廣泛的適用性,保證了靈活度。MVP模式的三個角色1Presenter 交互中間人:Presenter主要作為溝通View與Model的橋梁,它從Model層檢索數(shù)據(jù)后,返回給View層,使得View與Model之間沒有耦合,也將業(yè)務(wù)邏輯從View角色上抽離出來。2View 用戶界面:View通常是指Activity、Fragment或者*個View控件,它含有一個Presenter成員變量。通常View需要實現(xiàn)一個邏輯接口,將View上的操作轉(zhuǎn)交給Presenter進展實現(xiàn),最后,Pre

52、senter 調(diào)用View邏輯接口將結(jié)果返回給View元素。3Model 數(shù)據(jù)的存取:Model 角色主要是提供數(shù)據(jù)的存取功能。Presenter 需要通過Model層存儲、獲取數(shù)據(jù),Model就像一個數(shù)據(jù)倉庫。更直白的說,Model是封裝了數(shù)據(jù)庫DAO或者網(wǎng)絡(luò)獲取數(shù)據(jù)的角色,或者兩種數(shù)據(jù)方式獲取的集合。工程中列表視圖采用第三方庫*RecyclerView,該框架繼承自RecyclerView,在RecyclerView的根底上進展了封裝,提供了一系列的下拉刷新以及上拉加載更多的方法,并且在其中提供了默認的實現(xiàn),非常簡單易于使用;網(wǎng)絡(luò)請求采用谷歌官方出品的網(wǎng)絡(luò)請求框架Volley,該框架具有自

53、動調(diào)度網(wǎng)絡(luò)請求、支持多個并發(fā)的網(wǎng)絡(luò)連接、通過使用標(biāo)準(zhǔn)的HTTP緩存機制保持磁盤和內(nèi)存響應(yīng)的一致、支持請求優(yōu)先級、支持取消請求的強大API,可以取消單個請求或多個、易于定制、便于正確的更新UI和獲取數(shù)據(jù)、包含調(diào)試和追蹤工具的特點;數(shù)據(jù)解析采用的是谷歌官方出品的數(shù)據(jù)解析框架Gson,該框架可以直接把請求回來的JSON數(shù)據(jù)解析成實體類,配合Android Studio中的Gson Format插件可以到達快速開發(fā)的效果;5.1.2 工程目錄構(gòu)造工程采用的是MVP構(gòu)架,其中activity文件夾用來存儲登錄頁面的activity、注冊頁面的activity、驗證頁面的activity以及主頁面的act

54、ivity,adapter文件夾用來存儲ViewPager和*RecyclerView的適配器,application文件夾用來存儲自定義的application,bean文件夾用來存儲數(shù)據(jù)的實體類,callback文件夾用來存儲定義的回調(diào)接口,config文件夾用來存儲整個App所用到的Api接口,contract文件夾是用來存儲MVP構(gòu)架中的協(xié)議類,fragment文件夾則是存儲每個具體頁面的fragment,同時,model文件夾用來存儲MVP架構(gòu)中的Model層,presenter文件夾則用來存儲MVP架構(gòu)中的Presenter層,utils文件夾存儲的是各種工具類,如自定義的用來管理

55、所有Activity的AppManager類,以及Const常量類等,widget里面存儲的則是自定義的一系列控件和工具,如Glide加載圓角圖片的GlideRoundTransform類,自定義的攔截WebView中跳轉(zhuǎn)地址的MyWebViewClient,能夠到達屏幕寬度后自動換行的RadioGroupE*以及Recyclerview的RecyclerItemClickListener5.2 數(shù)據(jù)接口設(shè)計5.2.1 數(shù)據(jù)解析格式系統(tǒng)的數(shù)據(jù)交互主要采用一種輕量級的數(shù)據(jù)交換格式JSON,JSON數(shù)據(jù)有以下優(yōu)點:1方便于傳輸,較少冗余的字符。2方便轉(zhuǎn)換。JSON接口提供了JSON字符串轉(zhuǎn)成對象、

56、對象轉(zhuǎn)換成JSON串的方法。3易于閱讀。JSON代碼構(gòu)造良好,可以直觀了解信息具體內(nèi)容。5.2.2 數(shù)據(jù)交互方式本系統(tǒng)的交互主要采用POST方式,局部接口采用GET方式。1GET方法從指定的效勞器中獲取數(shù)據(jù),使用GET方法時,查詢字符串被附加在請求地址后面一起發(fā)送到效勞器:/api/demo_form.phpname1 = value1&name2 = value2特點:GET請求能夠被緩存GET請求會保存在瀏覽器的瀏覽記錄中以GET請求的URL能夠保存為瀏覽器書簽GET請求有長度限制GET請求主要用以獲取數(shù)據(jù)2POST方法提交數(shù)據(jù)給指定的效勞器處理,使用POST方法時,查詢字符串在請求信息中

57、單獨存在,并發(fā)送到效勞器:POST /api/demo_form.php HTTP/1.1Host: 1 = value1&name2 = value2特點:POST請求不能被緩存下來POST請求不會保存在瀏覽器瀏覽記錄中以POST請求的URL無法保存為瀏覽器書簽POST請求沒有長度限制5.2.3 數(shù)據(jù)接口定義1. 專題頁面:一級頁面:api.ht*/cactus/munityHomePage/getHomePagecity = %E5%85%A8%E5%9B%BD專題:api.ht*/cactus/sysArticle/getRemandArticleListpa

58、geInde* = 0文章詳情:api.ht*/cactus/sysArticle/getArticleInfouId = &aId = 文章ID本周精選:專題分類:最新:api.ht*/cactus/sysArticle/getCartArticleListid = 分類ID&pageInde* = 0&type = new其他:api.ht*/cactus/sysArticle/getArticleCartListid = 分類ID2. 發(fā)現(xiàn)頁面:輪播圖:POST請求參數(shù):NameValueActiongetAdList輪播圖詳情頁Html:POST請求參數(shù):NameValuetokenF

59、4D845028303F9A466B67EFF9C8C6BD6userIdd6e0ce4c-44c2-4b20-b07c-5cf9f21de3a6actiongetActivityactivityff1f65c4-01b7-4ccf-b4b2-bf81599010d2ysActivityServlet輪播圖詳情頁評論:POST請求參數(shù):NameValueinde*1actIdff1f65c4-01b7-4ccf-b4b2-bf81599010d2tokenF4D845028303F9A466B67EFF9C8C6BD6userIdd6e0ce4c-44c2-4b20-b07c-5cf9f21d

60、e3a6ActiongetListpageSize5每日精選:POST請求參數(shù):NameValuetype薦actiongetJianOrJingListcurrentPageInde*0pageSize4帖子詳情:POST請求參數(shù):NameValuebbsIdc6c89ef3-92c9-4bac-9381-6af00fad620euserIdd6e0ce4c-44c2-4b20-b07c-5cf9f21de3a6actiongetDetail評論詳情:POST請求參數(shù):NameValuebbsIdc6c89ef3-92c9-4bac-9381-6af00fad620eactiongetBbs

溫馨提示

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

最新文檔

評論

0/150

提交評論