




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-. z. . - . 可修編. 摘要現在,人們越來越重視互聯網。花田小憩可以為花卉愛好者們提供一個交流以及交易的平臺,在這里花卉愛好者們可以的到最新的花卉信息以及購置到喜歡的花卉品種。本文綜合運用Android技術、Android Studio開發平臺、JSON等技術和工具對花田小憩進展了分析、設計和實現。給出了系統的功能分析、環境和質量要求;建立了系統軟、硬件體系構造模型;完成了功能模塊設計和數據接口的對接;同時確定了各個功能模塊的測試環境,并制定了測試方案對各個模塊進展有效的測試和分析;最終實現了Android平臺端的應用。工程采用MVP架構,MVP模式是MVC模式的一個演化版本,MVP
2、全稱Model-View-Presenter。MVP模式會解除View與Model的耦合,有效的降低View的復雜性。同時又帶來了良好的可擴展性、可測試性,保證系統的整潔性和靈活性。MVP模式可以別離顯示層與邏輯層,它們之間通過接口進展通信,降低耦合。理想化的MVP模式可以實現同一份邏輯代碼搭配不同的顯示界面,因為它們之間并不依賴與具體,而是依賴于抽象。這使得Presenter可以運用于任何實現了View邏輯接口的UI,使之具有更廣泛的適用性,保證了靈活度。總之,本系統可以通過對智能家居系統的控制和受控方狀態的反應,從而使操作者可以及時掌握受控方信息,使其到達交互式智能化。更好地效勞于我們的生
3、活,使人們的日常生活更加方便、智能、快捷。關鍵詞:花卉;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 研發背景 PAGEREF _Toc484553209 h 1HYPERLINK l _Toc4845532101.2 主要研究內容 PAGEREF _Toc484553210 h 1HYPERLINK l _Toc4845532111.3 論文組織構造 PAGEREF _Toc484553211 h 1HYPERLINK l _Toc4845532122 課題研究相關技術綜述 PAGEREF _Toc484553212 h
11、1HYPERLINK l _Toc4845532132.1 Android 系統 PAGEREF _Toc484553213 h 1HYPERLINK l _Toc4845532142.2 Sqlite數據庫 PAGEREF _Toc484553214 h 1HYPERLINK l _Toc4845532152.3 JSON數據 PAGEREF _Toc484553215 h 1HYPERLINK l _Toc4845532162.4 Java環境 PAGEREF _Toc484553216 h 1HYPERLINK l _Toc4845532172.5 設備環境 PAGEREF _Toc48
12、4553217 h 1HYPERLINK l _Toc4845532183 系統需求分析 PAGEREF _Toc484553218 h 1HYPERLINK l _Toc4845532193.1 需求調查 PAGEREF _Toc484553219 h 1HYPERLINK l _Toc4845532203.2 功能分析 PAGEREF _Toc484553220 h 1HYPERLINK l _Toc4845532214 系統需求分析 PAGEREF _Toc484553221 h 1HYPERLINK l _Toc4845532224.1 系統設計環境 PAGEREF _Toc48455
13、3222 h 1HYPERLINK l _Toc4845532234.2 系統體系構造設計 PAGEREF _Toc484553223 h 1HYPERLINK l _Toc4845532245.1 工程設計 PAGEREF _Toc484553224 h 1HYPERLINK l _Toc4845532255.2 數據接口設計 PAGEREF _Toc484553225 h 1HYPERLINK l _Toc4845532266 系統實現 PAGEREF _Toc484553226 h 1HYPERLINK l _Toc4845532276.2 系統測試 PAGEREF _Toc484553
14、227 h 1HYPERLINK l _Toc4845532287 總結與展望 PAGEREF _Toc484553228 h 1HYPERLINK l _Toc4845532297.1 總結 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 研發背景近些年,隨著Internet和計算機網絡通信技術的飛速開展、人們生活水平的不斷提高,以及人們精神需求的不斷增長,移動應用已幾乎成為每個人都會使用的東西,無論男女老少,就比方我外公,前幾年就在學習怎么使用瀏覽器百度養生知識,雖然我外公之前沒有接觸過這些,但是在我的耐心講解下,而且移動應用的操作也比擬好上手,我外公還是輕松地學會了。大家對移動應用充滿了好奇心
16、以及求知欲,并且隨著移動手機越來越成為人們生活中不可缺失的一局部,移動應用便隨著這個趨勢大大開展了起來。然后互聯網+模式順勢而生,它能夠做到讓人們不出門,甚至是躺在床上,光是動動手指就可以獲取各種最新信息或者購置遠在天邊的商品,給人們的生活帶來了極大的便利。再說到我這個軟件,花田小憩是一款花藝愛好者的App,它不僅僅是有專業的花藝教學內容,它還是一個活潑的百萬花藝愛好者社區。在這里,你可以看到各式各樣的話題討論,不僅限于花藝,還延伸至家居、植物、雜物等生活美學領域。花田小憩還提供了眾多高清花藝壁紙,供你下載換桌面,可以適配各種屏幕尺寸。手機的美觀再也不愁了。花田小憩是一款花藝愛好者不容錯過的生
17、活應用。在這里,收獲的不僅僅是花藝知識,還有同道中人和美的生活方式。讓你的節奏,慢下來,美下去。作為一個植物生活美學平臺,花田小憩還提供跟花藝與生活美學相關的物品販賣,如鮮花、器皿、干花、書籍等。你可以在這里尋找生活的美。花田小憩創辦初衷是想為所有喜歡植物和美學的人們,通過花草與時間的疊加,營造一個小而美的精致生活。希望能讓用戶在繁瑣的生活之中,享受一種靜雅恬淡的生活之美,制造一份專屬的美學生活態度。1.2 主要研究內容本文采用面向對象軟件開發方法,遵照軟件工程的概念、原理和方法,利用Android Studio開發平臺控制系統的分析、設計和實現。所開發的控制系統主要具備以下功能:1瀏覽帖子:
18、可以通過App來查看其他用戶發布的與花卉有關的帖子。2購置花卉:可以通過App來進展在線的花卉購置。3發布帖子:可以發布帖子,并且上傳圖片以及選擇分類等。1.3 論文組織構造本文共分七章,各章的主要內容如下:第一章“緒論局部主要綜述了系統的開發背景、論文研究的主要內容以及組織構造。第二章“課題研究相關技術綜述局部對論文研究中所用到的開發工具、平臺及技術、設備環境做了簡單的介紹。第三章“系統需求分析局部主要描述了系統的需求分析過程,包括系統的需求調查、功能分析環境和質量要求。第四章“系統總體設計局部對系統的總體設計過程做了闡述,主要包括系統的設計環境,系統體系構造和數據庫的邏輯設計。第五章“系統
19、詳細設計局部表達了系統的詳細設計過程,包括工程設計、系統的功能模塊設計和數據接口的設計。第六章“系統實現局部對系統實現和測試做了概述,主要包括系統各功能模塊的實現、核心技術編碼、系統的測試過程等。第七章“總結與展望局部講述了對系統開發的總結和對下一步工作的預測。2 課題研究相關技術綜述2.1 Android 系統Android是一種以l i n u *為根底的開放源代碼操作系統,主要使用于便攜設備。目前尚未有統一中文名稱,中國大陸地區較多人使用“安卓或“安致。Android操作系統最初由Andy Rubin開發,最初主要支持手機。2005年由谷歌收購注資,并組建開放手機聯盟開發改進,逐漸擴展到
20、平板電腦及其他領域上。Android的主要競爭對手是蘋果公司的i o s以及RIM的Blackberry OS。2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居全球第一。 2012年2月數據,Android占據全球智能手機操作系統市場52.5%的份額,中國市場占有率為68.4%。Android的系統架構和其它操作系統一樣,采用了分層的架構。android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和l i n u *核心層。 Android是以Linu*為核心的手機操作平臺,作為一款開放式的操作系統,隨著Android的快速開展,如今已允許開發
21、者使用多種編程語言來開發Android應用程序,而不再是以前只能使用Java開發Android應用程序的單一局面,因而受到眾多開發者的歡送,成為真正意義上的開放式操作系統。在Android中,開發者可以使用Java作為編程語言來開發應用程序,也可以通過NDK使用C/C+作為編程語言來開發應用程序,也可使用SL4A來使用其他各種腳本語言進展編程如:python、l u a、t cl、p h p等等,還有其他諸如:QTqt for android、Monomono for android等一些著名編程框架也開場支持Android編程,甚至通過Mon o Droid,開發者還可以使用C#作為編程語言
22、來開發應用程序。另外,谷歌還在2009年特別發布了針對初學者的Android Simple語言,該語言類似Basic語言。而在網頁編程語言方面,JavaScript , HTML5等等都已經支持Android開發。2.1.1 Android 根本架構Android系統架構自上而下可分為應用程序層、應用程序框架層、系統運行庫層、系統內核層四個層次,如圖2.1所示。圖 2.1 Android 系統架構圖1應用程序Applications該層提供一些核心應用程序包,例如電子、短信、日歷、地圖、瀏覽器和聯系人管理等。同時,開發者可以利用Java語言設計和編寫屬于自己的應用程序,而這些程序與那些核心應用
23、程序彼此平等、友好共處。2應用程序框架Application Framework該層是Android應用開發的根底,開發人員大局部情況是在和她打交道。應用程序框架層包括活動管理器、窗口管理器、內容提供者、視圖系統、包管理器、管理器、資源管理器、位置管理器、通知管理器和*MPP效勞十個局部。在Android平臺上,開發人員可以完全訪問核心應用程序所使用的API框架。并且,任何一個應用程序都可以發布自身的功能模塊,而其他應用程序則可以使用這些已發布的功能模塊。基于這樣的重用機制,用戶就可以方便地替換平臺本身的各種應用程序組件。3系統運行庫Libraries系統庫包括九個子系統,分別是圖層管理、媒體
24、庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android運行時包括核心庫和Dalvik虛擬機,前者既兼容了大多數Java語言所需要調用的功能函數,又包括了Android的核心庫,比方android.os、android.NET、android.media等等。后者是一種基于存放器的java虛擬機,Dalvik虛擬機主要是完成對生命周期的管理、堆棧的管理、線程的管理、平安和異常的管理以及垃圾回收等重要功能。4系統內核Linu* KernelAndroid核心系統效勞依賴于Linu*2.6內核,如平安性、內存管理、進程管理、網絡協議棧和驅
25、動模型。Linu*內核也是作為硬件與軟件棧的抽象層。驅動:顯示驅動、攝像頭驅動、鍵盤驅動、WiFi驅動、Audio驅動、flash內存驅動、BinderIPC驅動、電源管理等。2.1.2 Android 開發環境搭建Android 平臺為開發者提供了免費并且開放的開發環境,而且使用其提供的幫助文檔和工具,開發者能夠快速地編寫出需要的APP。學習Android開發的第一步就是搭建Android的開發環境,開發環境的搭建步驟如下:1第一步:安裝JDK下載Oracle公司的JDK可以百度“JDK進入Oracle公司的JDK下載頁面,選擇自己電腦系統的對應版本即可。JDK的全稱是Java SE Dev
26、elopment Kit,也就是Java 開發工具箱。SE表示標準版。JDK是Java的核心,包含了Java的運行環境Java Runtime Environment,一堆Java工具和給開發者開發應用程序時調用的Java類庫。JDK包含的根本工具主要有:javac:Java編譯器,將源代碼轉成字節碼。jar:打包工具,將相關的類文件打包成一個文件。javadoc:文檔生成器,從源碼注釋中提取文檔。jdb:debugger,調試查錯工具。java:運行編譯后的java程序。2配置JDK的變量環境為了配置JDK的系統變量環境,我們需要設置三個系統變量,分別是JAVA_HOME,Path和CLAS
27、SPATH。下面是這三個變量的設置防*。JAVA_HOME先設置這個系統變量名稱,變量值為JDK在你電腦上的安裝路徑:。創立好后則可以利用%JAVA_HOME%作為JDK安裝目錄的統一引用路徑。PATHPATH屬性已存在,可直接編輯,在原來變量后追加:;%JAVA_HOME%bin;%JAVA_HOME%jrebin 。CLASSPATH 設置系統變量名為:CLASSPATH 變量值為:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar 。注意變量值字符串前面有一個.表示當前目錄,設置CLASSPATH 的目的,在于告訴Java執行環境,在哪些目錄下可
28、以找到您所要執行的Java程序所需要的類或者包。3下載 Android StudioAndroid Studio 是一個Android集成開發工具,基于IntelliJ IDEA. 類似 Eclipse ADT,Android Studio 提供了集成的 Android 開發工具用于開發和調試。2013年5月16日,在I/O大會上,谷歌推出新的Android開發環境Android Studio,并對開發者控制臺進展了改進,增加了五個新的功能。Android Studio是谷歌推出了新的Android開發環境,開發者可以在編寫程序的同時看到自己的應用在不同尺寸屏幕中的樣子。2015年5月29日,
29、在谷歌I/O開發者大會上,谷歌發布Android Studio 1.3版,支持C+編輯和查錯功能。Android Studio 1.3版開發碼代碼變得更加容易,速度提升,而且支持C+編輯和查錯功能。4下載Android SDK配置了JDK變量環境,安裝好了Eclipse,這個時候如果只是開發普通的JAVA應用程序,則Java的開發環境已經準備好了。我們要通過Eclipse來開發Android應用程序,則我們需要下載Android SDKSoftware Development Kit和在Eclipse安裝ADT插件,這個插件能讓Eclipse和Android SDK關聯起來。Android S
30、DK提供了開發Android應用程序所需的API庫和構建、測試和調試Android應用程序所需的開發工具。下載后雙擊安裝,指定Android SDK的安裝目錄,為了方便使用Android SDK包含的開發工具,我們在系統環境變量中的Path設置Android SDK的安裝目錄下的tools目錄。在Android SDK的安裝目錄下,雙擊“SDK Manager.e*e,翻開Android SDK Manager,Android SDK Manage負責下載或更新不同版本的SDK包,我們看到默認安裝的Android SDK Manager只安裝了一個版本的sdk tools。2.2 Sqlite
31、數據庫SQLite是D.Richard Hipp用C語言編寫的開源嵌入式數據庫引擎。它支持大多數的SQL92標準,并且可以在所有主要的操作系統上運行。SQLite由以下幾個局部組成:SQL編譯器、內核、后端以及附件。SQLite通過利用虛擬機和虛擬數據庫引擎( VDBE ),是調試、修改和擴展SQLite的內核變得更加方便。所有SQL語句都被編譯成易讀的、可以在SQLite虛擬機中執行的程序集。SQLite的整體構造圖如下:值得一提的是,袖珍型的SQLite竟然可以支持高達2TB大小的數據庫,每個數據庫都是以單個文件的形式存在,這些數據都是以B-Tree的數據構造形式存儲在磁盤上。在事務處理方
32、面,SQLite通過數據庫級上的獨占性和共享鎖來實現獨立事務處理。這意味著多個進程可以在同一時間從同一數據庫讀取數據,但只有一個可以寫入數據。在*個進程或線程想數據庫執行寫操作之前,必須獲得獨占鎖。在獲得獨占鎖之后,其他的讀或寫操作將不會再發生。SQLite采用動態數據類型,當*個值插入到數據庫時,SQLite將會檢查它的類型,如果該類型與關聯的列不匹配,SQLite則會嘗試將該值轉換成該列的類型,如果不能轉換,則該值將作為本身的類型存儲,SQLite稱這為“弱類型。但有一個特例,如果是INTEGER PRIMARY KEY,則其他類型不會被轉換,會報一個“datatype missmatch
33、的錯誤。概括來講,SQLite支持NULL、INTEGER、REAL、TE*T和BLOB數據類型,分別代表空值、整型值、浮點值、字符串文本、二進制對象。SQLite的特點大致總結如下: 1.輕量級使用 SQLite 只需要帶一個動態庫,就可以享受它的全部功能,而且那個動態庫的尺寸想當小。 2.獨立性 SQLite 數據庫的核心引擎不需要依賴第三方軟件,也不需要所謂的“安裝。 3.隔離性 SQLite 數據庫中所有的信息比方表、視圖、觸發器等都包含在一個文件夾內,方便管理和維護。 4.跨平臺 SQLite 目前支持大局部操作系統,不至電腦操作系統更在眾多的手機系統也是能夠運行,比方:Androi
34、d和IOS。 5.多語言接口 SQLite 數據庫支持多語言編程接口。 6.平安性2.3 JSON數據JSON( JavaScript Object Notation , JS 對象標記 ) 是一種輕量級的數據交換格式。它基于 ECMAScript ( w3c制定的js規* )的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次構造使得 JSON 成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。在 JS 語言中,一切都是對象。因此,任何支持的類型都可以通過 JSON 來表示,例如字符串、數字、對象、數組等。但是對象和數組是
35、比擬特殊且常用的兩種類型:對象表示為鍵值對、數據由逗號分隔、花括號保存對象、方括號保存數組。在 JS 語言中,一切都是對象。因此,任何支持的類型都可以通過 JSON 來表示,例如字符串、數字、對象、數組等。但是對象和數組是比擬特殊且常用的兩種類型。對象:對象在 JS 中是使用花括號包裹 起來的內容,數據構造為 key1:value1 , key2:value2 , . 的鍵值對構造。在面向對象的語言中,key 為對象的屬性,value 為對應的值。鍵名可以使用整數和字符串來表示。值的類型可以是任意類型。數組:數組在 JS 中是方括號 包裹起來的內容,數據構造為 java , javascrip
36、t , vb , . 的索引構造。在 JS 中,數組是一種比擬特殊的數據類型,它也可以像對象那樣使用鍵值對,但還是索引使用得多。同樣,值的類型可以是任意類型。2.4 Java環境2.4.1 Java簡介Java是一門面向對象編程語言,不僅吸收了C+語言的各種優點,還摒棄了C+里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進展復雜的編程。Java具有簡單性、面向對象、分布式、強健性、平安性、平臺獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web
37、應用程序、分布式系統和嵌入式系統應用程序等。2.4.2 Java特性1簡單性Java看起來設計得很像C+,但是為了使語言小和容易熟悉,設計者們把C+語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C+的操作符過載overload和多繼承特征,并且不使用主文件,免去了預處理程序。因為Java沒有構造,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。2面向對象Java是
38、一個面向對象的語言。對程序員來說,這意味著要注意應中的數據和操縱數據的方法method,而不是嚴格地用過程來思考。在一個面向對象的系統中,類class是數據和操作數據的方法的集合。數據和方法一起描述對象object的狀態和行為。每一對象是其狀態和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。Java還包括一個類的擴展集合,分別組成各種程序包Package,用戶可以在自己的程序中使用。例如,Java提供產生圖形用戶接口部件的類java.awt包,這里awt是抽象窗口工具集abstract win
39、dowing toolkit的縮寫,處理輸入輸出的類java.io包和支持網絡功能的類包。3分布性Java設計成支持在網絡上應用,它是分布式語言。Java既支持各種層次的網絡連接,又以Socket類支持可靠的流stream網絡連接,所以用戶可以產生分布式的客戶機和效勞器。網絡變成軟件應用的分布運載工具。Java程序只要編寫一次,就可到處運行。4編譯和解釋性Java編譯程序生成字節碼byte-code,而不是通常的機器碼。Java字節碼提供對體系構造中性的目標文件格式,代碼設計成可有效地傳送程序到多個平臺。Java程序可以在任何實現了Java解釋程序和運行系統run-time system的系統
40、上運行。在一個解釋性的環境中,程序開發的標準“階段大大消失了。如果說Java還有一個階段,它只是把新類裝進環境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導致快速程序開發。這是一個與傳統的、耗時的“編譯、和測試形成鮮明比照的精巧的開發過程。5穩健性Java原來是用作編寫消費類家用電子產品軟件的語言,所以它是被設計成寫高可靠和穩健軟件的。Java消除了*些編程錯誤,使得用它寫可靠軟件相當容易。Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風格的隱式聲明。這些嚴格的要求保證編譯程序能捕捉調用錯誤,這就
41、導致更可靠的程序。可靠性方面最重要的增強之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和訛誤數據的可能性。類似地,Java自動的“無用單元收集預防存儲漏泄和其它有關動態存儲分配和解除分配的有害錯誤。Java解釋程序也執行許多運行時的檢查,諸如驗證所有數組和串訪問是否在界限之內。異常處理是Java中使得程序更穩健的另一個特征。異常是*種類似于錯誤的異常條件出現的信號。使用try/catch/finally語句,程序員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復的任務6平安性Java的存儲分配模型是它防御惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內幕和
42、偽造指針去指向存儲器。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜想類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程序決定實際存儲地址。Java運行系統使用字節碼驗證過程來保證裝載到網絡上的代碼不違背任何Java語言限制。這個平安機制局部包括類如何從網上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預防惡意的小應用程序用它自己的版本來代替標準Java類。7可移植性Java使得語言聲明不依賴于實現的方面。例如,Java顯式說明每個根本數據類型的大小和它的運算行為這些數據類型由Java語法描述。Java環境本身對新的硬件平臺和操作系
43、統是可移植的。Java編譯程序也用Java編寫,而Java運行系統用ANSIC語言編寫。8高性能Java是一種先編譯后解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設計者制作了“及時編譯程序,它能在運行時把Java字節碼翻譯成特定CPU中央處理器的機器代碼,也就是實現全編譯了。Java字節碼格式設計時考慮到這些“及時編譯程序的需要,所以生成機器代碼的過程相當簡單,它能產生相當好的代碼。9多線索性Java是多線索語言,它提供支持多線索的執行也稱為輕便過程,能處理不同任務,使具有線索的程序設計很容易。Java的lang包提供一個Thread類,它支持
44、開場線索、運行線索、停頓線索和檢查線索狀態的方法。Java的線索支持也包括一組同步原語。這些原語是基于監視程序和條件變量風*,由開發的廣泛使用的同步化方案。用關鍵詞synchronized,程序員可以說明*些方法在一個類中不能并發地運行。這些方法在監視程序控制之下,確保變量維持在一個一致的狀態。10動態性Java語言設計成適應于變化的環境,它是一個動態的語言。例如,Java中的類是根據需要載入的,甚至有些是通過網絡獲取的。2.5 設備環境設備名稱:LG Ne*us 516GB主屏尺寸:4.95英寸主屏分辨率:1920*1080像素后置攝像頭:800萬像素前置攝像頭:130萬像素電池容量:230
45、0mAh電池類型:不可拆卸式電池核心數:四核內存:2GBAndroid版本:3 系統需求分析3.1 需求調查通過網絡搜索、查閱相關資料以及與用戶進展訪談等方式,對用戶的需求進展了詳細的調研,并對用戶在環境監測、視頻監控、家庭管理及開關控制和場景模式等方面的需求進展了詳細的探討,確定了智能家居控制系統的主要功能需求。功能分解圖如圖3.1所示。花田小憩專題發現發布帖子商城我的圖3.1 花田小憩的功能分解圖分析得主要功能如下:1專題,該頁面分為小編推薦、專題分類、每日壁紙以及每日推薦。2發現:該頁面分為精選、圈子以及訂閱。3發布帖子:如果未登錄,點擊該按鈕跳轉到登陸頁面,如果已登錄,點擊該按鈕跳轉到
46、發布帖子頁面。4商城:可以在該頁面選購喜歡的花卉,并且參加購物車然后付款購置。5我的:可以在該頁面中管理自己的個人信息以及點贊的帖子以及評論。3.2功能分析3.2.1 系統框架圖根據在需求調查時得到的結果,本文通過對花田小憩系統功能分析,建立了系統的主體框架如圖3.2所示。圖3.2 花田小憩系統整體架構圖3.2.2 系統各局部描述由圖3.2可以看出,系統主要包括五個局部:專題局部、發現局部、商城局部、發表帖子局部以及我的局部。其中,每個局部的交互過程如下:1專題局部此局部為這個系統的第一局部,它主要負責展示每日精選帖子、精選壁紙以及所有帖子分類。2發現局部此局部是用來顯示精選、圈子以及訂閱的內
47、容。3商城此局部用來方便用戶購置各種花卉。4發表帖子此局部用于用戶發表自己的帖子。5我的此局部用戶用戶查看以及修改自己的個人信息,查看自己的帖子的點贊情況。4 系統需求分析4.1 系統設計環境4.1.1 軟件環境1Java,版本為。2Android Studio,版本為。4.1.2 硬件環境1。2Android平臺:Android版本需要高于4.4。4.2 系統體系構造設計4.2.1 C/S體系構造B/S模式,相對于C/S構造而言易于拓展,開發周期短,而且移植方便,不須安裝客戶端( 客戶端只使用瀏覽器 ),可以跨平臺使用。但其缺點是客戶端的處理能力差,無文件和目錄的操作能力,也不容易完成與其它
48、程序之間的數據交互;同時,考慮到要保證便攜性以及平安性,由于B/S模式在數據交互時,其數據的平安性很難保證;而C/S模式卻恰恰可以封裝Client和Server之間的數據交互,也能夠很好實現對Client的控制和操作,所以它適合于該App系統。可以說,支持采用C/S的理由主要有:應用的不確定性,系統的擴展性,逐步開發和增加新應用的需要,適應將來開放的異種網絡環境中應用的需要,用戶數、數據量增長的可能性,適應電腦開發、維護、供給商與相關技術人員變更的需要,有利于動態規劃與動態開發過程,對系統可靠性有保證。5 系統詳細設計5.1 工程設計5.1.1 工程構架該工程采用MVP架構,該架構是Andro
49、id平臺MVC框架的升級,MVC全稱是Model - View - Controller,是模型( model )視圖( view )控制器( controller )的縮寫。MVC是一種框架模式而非設計模式,GOF把MVC看作是3種設計模式:觀察者模式、策略模式與組合模式的合體,而核心是觀察者模式。簡而言之,框架是大智慧,用來對軟件設計進展分工;設計模式是小技巧,對具體問題提出解決方案,以提高代碼復用率,降低耦合度。MVP架構是在MVC的根底上進展的升級,MVP模式是MVC模式的一個演化版本,MVP全稱Model-View-Presenter。目前MVP在Android應用開發中越來越重要了
50、。在Android中,業務邏輯和數據存取是緊緊耦合的,很多缺乏經歷的開發者很可能會將各種各樣的業務邏輯塞進*個Activity、Fragment或者自定義View中,這樣會使得這些組件的單個類型臃腫不堪。如果不將具體的業務邏輯抽離出來,當UI變化時,你就需要去原來的View中抽離具體業務邏輯,這必然會很麻煩并且易出錯。MVP模式會解除View與Model的耦合,有效的降低View的復雜性。同時又帶來了良好的可擴展性、可測試性,保證系統的整潔性和靈活性。MVP模式可以別離顯示層與邏輯層,它們之間通過接口進展通信,降低耦合。理想化的MVP模式可以實現同一份邏輯代碼搭配不同的顯示界面,因為它們之間并
51、不依賴與具體,而是依賴于抽象。這使得Presenter可以運用于任何實現了View邏輯接口的UI,使之具有更廣泛的適用性,保證了靈活度。MVP模式的三個角色1Presenter 交互中間人:Presenter主要作為溝通View與Model的橋梁,它從Model層檢索數據后,返回給View層,使得View與Model之間沒有耦合,也將業務邏輯從View角色上抽離出來。2View 用戶界面:View通常是指Activity、Fragment或者*個View控件,它含有一個Presenter成員變量。通常View需要實現一個邏輯接口,將View上的操作轉交給Presenter進展實現,最后,Pre
52、senter 調用View邏輯接口將結果返回給View元素。3Model 數據的存取:Model 角色主要是提供數據的存取功能。Presenter 需要通過Model層存儲、獲取數據,Model就像一個數據倉庫。更直白的說,Model是封裝了數據庫DAO或者網絡獲取數據的角色,或者兩種數據方式獲取的集合。工程中列表視圖采用第三方庫*RecyclerView,該框架繼承自RecyclerView,在RecyclerView的根底上進展了封裝,提供了一系列的下拉刷新以及上拉加載更多的方法,并且在其中提供了默認的實現,非常簡單易于使用;網絡請求采用谷歌官方出品的網絡請求框架Volley,該框架具有自
53、動調度網絡請求、支持多個并發的網絡連接、通過使用標準的HTTP緩存機制保持磁盤和內存響應的一致、支持請求優先級、支持取消請求的強大API,可以取消單個請求或多個、易于定制、便于正確的更新UI和獲取數據、包含調試和追蹤工具的特點;數據解析采用的是谷歌官方出品的數據解析框架Gson,該框架可以直接把請求回來的JSON數據解析成實體類,配合Android Studio中的Gson Format插件可以到達快速開發的效果;5.1.2 工程目錄構造工程采用的是MVP構架,其中activity文件夾用來存儲登錄頁面的activity、注冊頁面的activity、驗證頁面的activity以及主頁面的act
54、ivity,adapter文件夾用來存儲ViewPager和*RecyclerView的適配器,application文件夾用來存儲自定義的application,bean文件夾用來存儲數據的實體類,callback文件夾用來存儲定義的回調接口,config文件夾用來存儲整個App所用到的Api接口,contract文件夾是用來存儲MVP構架中的協議類,fragment文件夾則是存儲每個具體頁面的fragment,同時,model文件夾用來存儲MVP架構中的Model層,presenter文件夾則用來存儲MVP架構中的Presenter層,utils文件夾存儲的是各種工具類,如自定義的用來管理
55、所有Activity的AppManager類,以及Const常量類等,widget里面存儲的則是自定義的一系列控件和工具,如Glide加載圓角圖片的GlideRoundTransform類,自定義的攔截WebView中跳轉地址的MyWebViewClient,能夠到達屏幕寬度后自動換行的RadioGroupE*以及Recyclerview的RecyclerItemClickListener5.2 數據接口設計5.2.1 數據解析格式系統的數據交互主要采用一種輕量級的數據交換格式JSON,JSON數據有以下優點:1方便于傳輸,較少冗余的字符。2方便轉換。JSON接口提供了JSON字符串轉成對象、
56、對象轉換成JSON串的方法。3易于閱讀。JSON代碼構造良好,可以直觀了解信息具體內容。5.2.2 數據交互方式本系統的交互主要采用POST方式,局部接口采用GET方式。1GET方法從指定的效勞器中獲取數據,使用GET方法時,查詢字符串被附加在請求地址后面一起發送到效勞器:/api/demo_form.phpname1 = value1&name2 = value2特點:GET請求能夠被緩存GET請求會保存在瀏覽器的瀏覽記錄中以GET請求的URL能夠保存為瀏覽器書簽GET請求有長度限制GET請求主要用以獲取數據2POST方法提交數據給指定的效勞器處理,使用POST方法時,查詢字符串在請求信息中
57、單獨存在,并發送到效勞器:POST /api/demo_form.php HTTP/1.1Host: 1 = value1&name2 = value2特點:POST請求不能被緩存下來POST請求不會保存在瀏覽器瀏覽記錄中以POST請求的URL無法保存為瀏覽器書簽POST請求沒有長度限制5.2.3 數據接口定義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. 發現頁面:輪播圖:POST請求參數:NameValueActiongetAdList輪播圖詳情頁Html:POST請求參數:NameValuetokenF
59、4D845028303F9A466B67EFF9C8C6BD6userIdd6e0ce4c-44c2-4b20-b07c-5cf9f21de3a6actiongetActivityactivityff1f65c4-01b7-4ccf-b4b2-bf81599010d2ysActivityServlet輪播圖詳情頁評論:POST請求參數:NameValueinde*1actIdff1f65c4-01b7-4ccf-b4b2-bf81599010d2tokenF4D845028303F9A466B67EFF9C8C6BD6userIdd6e0ce4c-44c2-4b20-b07c-5cf9f21d
60、e3a6ActiongetListpageSize5每日精選:POST請求參數:NameValuetype薦actiongetJianOrJingListcurrentPageInde*0pageSize4帖子詳情:POST請求參數:NameValuebbsIdc6c89ef3-92c9-4bac-9381-6af00fad620euserIdd6e0ce4c-44c2-4b20-b07c-5cf9f21de3a6actiongetDetail評論詳情:POST請求參數:NameValuebbsIdc6c89ef3-92c9-4bac-9381-6af00fad620eactiongetBbs
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東現代學院《建設項目投資與融資》2023-2024學年第二學期期末試卷
- 平頂山工業職業技術學院《傳熱學》2023-2024學年第二學期期末試卷
- 江西省豐城市2024-2025學年初三下學期第八次質量監測化學試題含解析
- 內蒙古交通職業技術學院《云計算系統》2023-2024學年第二學期期末試卷
- 昆明醫科大學《中醫經典專題講座》2023-2024學年第二學期期末試卷
- 四川省綿陽市安州區2024-2025學年初三下學期4月考生物試題含解析
- 遼寧工業大學《外國語言文學導論(2)》2023-2024學年第二學期期末試卷
- 四川交通職業技術學院《財務案例研究自學》2023-2024學年第二學期期末試卷
- 泉州幼兒師范高等專科學校《競速輪滑》2023-2024學年第二學期期末試卷
- 四川省內江市東興區市級名校2025屆初三下學期階段考試語文試題含解析
- 軟件運維服務協議合同范本
- 房屋使用用途分類附表
- 教師評價課件
- 華為簡易勝任力素質模型圖表
- 高中課本劇-鴻門宴劇本
- 隧洞工程臨時用電專項施工方案實用資料
- 考研英語大綱詞匯(完美打印版)
- 深圳南山區建設工程施工圍擋改造提升
- 勞動節知識問答
- GB/T 41749-2022熱軋型鋼表面質量一般要求
- YS/T 1161.3-2016擬薄水鋁石分析方法第3部分:孔容和比表面積的測定氮吸附法
評論
0/150
提交評論