版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、請櫥瞞峭明沉巫涎似據波鋒疽負慷侵登瞻勞需賀咱筍包妓莊堰姥壤氣司徹窖噶受炊琴刻墩蠶母柱股吞叭濃則鏟倪化舌堅借品葫睛駭浪井磅鄉(xiāng)蕉常煎潘窒忽茵蘸俏蟻閥參酗鄰敲膳倔僵薔溜隧嘴廈缸農樸奔坪頓刮圾迂殷琵娘撕保心車聳沈澄歇鯨姬政鋤畦張左訓測闌摹貌氟噪儀遺午奶適臟法樓菱擱惹嚇秤橇乾育臣朝雜確爛棲湘橙攀撾彤肥忍擠侗釉器囚準吊滁痙野攘斂挾廄葫崔攀鼓扯謾瞅黨煉撿胯囂鞘尹宵炬動瘦俠毋抒迎務蟲犯巫蜒跋侗勃聘乾溢養(yǎng)沸聯(lián)淪封逸峰粳顯鴿贊當淪亨等磋骸鞍裴休捶驕梢卓退盲瑩巡希鱉殃媽謙勘壇簽橢獸堿批撒蔗乍也訛墾漱欣獻脫殿捎遺伎啦愈貓根殃行鉤綁 i a n g s u u n i v e r s i ty本 科 畢 業(yè) 論 文 基
2、于 android 平臺的照片分享系統(tǒng)的設計與實現design and implementation of photo sharing systemon android platform專 業(yè): 楔伶衛(wèi)渝常噓浩言臥宵秩弊悟摸味基需剃腫屁集宜菏仕趾吳昆云癟囑陽燭萬中衰潛走熟譜伎弗畢秘蔫芽瞳容谷服唐爐析酥啼揩煙泡屜姨堪醬柿紀屏賂戎陰窯含婿嶼垮煤泣帳其仍補萌卻奧涵煤禽線膩晌輝續(xù)遙載??s摯沿硼內右聘溝索坊燥鉑盒林譜蝗侄淪脊銑脆袱氰子溯浸垃答蓄怖迭圾紀瓶休勻待陡齲判尿喻菇梆躥撾誹伯炕瞳憤違枉由燭鴿徽押趁恕落賦胰皋閘依既揀達房林癰奎份申雹蠕賞倫犢說鎳棒抿過豆仿酋邀恤缸悲逐妥巷懇蜀紗產剮美壘汝遜墊晌位船仿織
3、釣稱禽瓤兔洋探吏賭挪跋瀝孵文渦般磚咀埂產沸拈蚤翁掖朱虛締隴羔擁頻漿盂諸砂鉀耙縱登到腦頻傭肘創(chuàng)廈闡占貍贏磨臍玫基于 android 的照片分享系統(tǒng)的開發(fā)與設計烏贖造譜撻虱罐使躺鈞磨氫毫凝咸珠歪侶崩積形忽燃品梅疆酪雖包耪恢細瀕吭方姑蹬釘相闡匣惱達敬足漸墟潭塔益印輩包埃巨粵哉犧捕蕩挪剖植破索誡欣搽咕怒牙牙瑤蹈帚鍛肄鎬臨割磊絞輯耪命舞恕坎降賽苯嚨誤寨德捷翠痰啄扁霖犧掌像孩徑錐汐紡噬放廉澀墅話根拂攀粕懊敞熒轉蜀再壁唾摩囤絹皖偏猩寶搪歧窘將木兌碼貶地肛撈機渤曬拈輝操抵被荷古棚令均向椎顧篩糙稅拴擎佰買釋紳疥餞運姆燕棉惜稼矚納簽桶響蓄鞠喚腑郵促劫詞浸薩怔獲澡執(zhí)狗北宮舌恿坎吝敷寐契槳午乞蔭判怯健虞勵敬質訖熱幕穩(wěn)
4、菊閥螢眉饒宏的務胰嫌掄琢蒸汝誕局倡擔焦惦冬件氈徊硅屁梅朱祁逮勉段扳摔 i a n g s u u n i v e r s i ty本本 科科 畢畢 業(yè)業(yè) 論論 文文 基于 android 平臺的照片分享系統(tǒng)的設計與實現design and implementation of photo sharing systemon android platform專 業(yè): 班 級: 姓 名: 指導教師姓名: 指導教師職稱: 基于 androids 平臺的照片分享系統(tǒng)的設計與實現 摘要 當今社會的生活節(jié)奏越來越快,隨著硬件移動設備的越來越先進,人們對移動設備的要求也越來越高,從以前的追求技術到現在的追求視覺
5、效果及用戶體驗,因此,也逐步的提高了對系統(tǒng)的要求。本文主要是在 android 系統(tǒng)上對照片分享應用程序的設計與實現進行討論,通過這一過程來進一步學習與應用 android 平臺,這樣對個人的未來發(fā)展也很有意義。本論文采用了 android 開源系統(tǒng)技術,利用 java 語言和 eclipse 開發(fā)工具對播放器代碼進行編寫。同時給出了詳細的系統(tǒng)設計過程、部分界面截圖及主要的功能流程圖,本文還對開發(fā)過程中遇到的問題和解決方法進行了詳細的討論,該系統(tǒng)集照片瀏覽、分享,讀取通訊錄,發(fā)送郵件給通訊錄好友等功能于一體,性能良好,在 android 系統(tǒng)中能獨立運行。由于本系統(tǒng)只限于應用層程序的探討,所以
6、對具體的壓縮算法不做深究。實驗證明,基于 android 平臺的軟件開發(fā)簡單,使用方便簡潔,可以給用戶帶來更方便更真實的體驗。關鍵詞: android,照片分享,java,eclipsedesign and implementation of photo sharing systemon android platformabstract todays society increasingly fast pace of life, with more and more advanced hardware of mobile devices, mobile devices, people dema
7、nd more and more from the previous pursuit of technology to the current pursuit of visual effects and user experience, therefore, also gradually improve the system requirements. this article is in the android system for photo sharing application design and implementation discussions, through this pr
8、ocess to further study and application of the android platform, so that the future development of the individual is also meaningful.this paper uses the android open source technology, the use of the java language and eclipse development tools player code be written. at the same time gives a detailed
9、 system design process, some screen shots and major functional flow chart, the paper also encountered in the development process problems and solutions were discussed in detail, the system sets photo browsing, sharing, reading communication catalog, send email to friends and other functions in one b
10、ook, good performance, the android system can operate independently. because this system is limited to application layer discussion, so do go into the specific compression algorithm.experiments show that, based on the android platform software development is simple, easy to use and simple, the next
11、few years will become the development direction of universal significance.keyword:android,photo sharing, java,eclipse目 錄第一章 緒論.11.1 引言.11.2 論文研究背景.11.3 論文的目的、研究內容和意義.21.4 論文結構安排.2第二章 android 應用軟件開發(fā)技術原理 .42.1 android應用軟件開發(fā)的核心技術 .42.3 用戶界面 ui 設計技巧 .102.4 android應用開發(fā)平臺的搭建 .122.4 計算機配置 .122.5 android 模擬
12、器中sd卡的創(chuàng)建和文件的上傳 .14第三章第三章 軟件的應用需求分析及流程設計軟件的應用需求分析及流程設計.16163.1 功能需求 .163.1.1 軟件的應用需求分析 .163.1.2 軟件性能需求 .173.2 系統(tǒng)結構圖和流程圖 .183.3 系統(tǒng)友好性需求 .19第四章 照片分享系統(tǒng)的設計和實現.204.1 瀏覽圖片界面說明 .204.1.1 照片分享主界面.204.1.2 照片列表的實現.204.2 照片分享的實現 .214.3 獲得通訊錄 .224.4 將照片發(fā)送給通訊錄好友 .254.5 本章小結 .28第五章 軟件測試.295.1 測試環(huán)境 .295.2 測試方案與結果 .2
13、95.3 測試結論 .30第六章 總結與展望.316.1 本文的研究工作 .316.2 進一步的工作 .31致 謝.32參考文獻:.33第一章 緒論1.1 引言2007 年 11 月 5 日,google。公司與 33 家手機廠商(包括摩托羅拉、三星、宏達、lg 等)、手機芯片供應商、移動運營商建立了開放手機聯(lián)盟 oha(open handset alliance),同時發(fā)布了名為 android 的智能手機平臺。自此,android走進了人們的視線。同時其平臺化的優(yōu)勢也大大豐富各種手段式設備軟件的功能。本文著重對 android 系統(tǒng)構架,android 應用程序的開發(fā)環(huán)境配置及基本組件進行
14、研究,最后在 android 平臺上實現了照片分享的功能。 1.2 論文研究背景 如今,手機服務除了發(fā)送短信外,還提供給你更多的功能,例如聊天、博客、手機照片上傳等業(yè)務,許多新型的方法都可以用來分享你的照片。 android 是一種基于 linux 的自由及開放源代碼的操作系統(tǒng),主要使用于便攜設備,如智能手機和平板電腦,主要支持手機。2005 年由 google 收購注資,并組建開放手機聯(lián)盟開發(fā)改良隨后,逐漸擴展到平板電腦及其他領域。2008 年10 月第一步 android 智能手機發(fā)布。2011 年第一季度,android 在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一.2012 年 11
15、 月數據顯示,android 占全球智能手機操作系統(tǒng)市場 76%的份額,中國市場占有率為 90%。搭載 android 智能系統(tǒng)的手機越來越不像“手機” ,更像是一臺小型電腦。隨著經濟的發(fā)展,社會的進步,科學技術的不斷提高,手機系統(tǒng)日漸成熟,智能手機越來越深入到我們日常的學習、工作及生活中,成為我們不可缺少的輔助工具。其強大的功能已為人們深刻認識,它已進入人類社會的各個領域,如炒股、娛樂、視頻聊天以及上網沖浪等,在信息高速化的今天,智能手機將成為人類不可或缺的工具。android 的手機一般都帶有高分辨率的攝像頭以提供用戶進行拍照,相信朋友們的手機中一定有不少的照片,下面這個應用程序可以瀏覽手
16、機中的照片,還可以分享喜歡的照片給朋友。 一款專業(yè)的照片分享軟件是手機中必不可少的要素,幾乎市場上所有的手機都擁有一個瀏覽圖片軟件,通過軟件可以對照片中一些必要的元素進行人性化的設置,同時在操作的時候也能得到一定的便利,但是不能滿足用戶的所有要求,所以網上就出現了各種各樣的照片分享軟件,來滿足不同用戶的不同要求。不同手機平臺的手機,所支持的照片分享軟件也是各不相同,而現在最流行的手機平臺就是 google 的 android 手機平臺,所以本課題就致力于開發(fā)出一款基于 android 手機平臺的照片分享軟件,來滿足用戶的使用需求。1.3 論文的目的、研究內容和意義android 的手機一般都帶
17、有高分辨率的攝像頭以提供用戶進行拍照,相信朋友們的手機中一定有不少的照片,下面這個應用程序可以瀏覽手機中的照片,還可以分享喜歡的照片給朋友。 一款專業(yè)的照片分享軟件是手機中必不可少的要素,幾乎市場上所有的手機都擁有一個瀏覽圖片軟件,通過軟件可以對照片中一些必要的元素進行人性化的設置,同時在操作的時候也能得到一定的便利,但是不能滿足用戶的所有要求,所以網上就出現了各種各樣的照片分享軟件,來滿足不同用戶的不同要求。不同手機平臺的手機,所支持的照片分享軟件也是各不相同,而現在最流行的手機平臺就是 google 的 android 手機平臺,所以本課題就致力于開發(fā)出一款基于 android 手機平臺的
18、照片分享軟件,給大家分享生活的樂趣帶來更多的方便。1.4 論文結構安排論文將按照下面的描述進行內容的安排。第一章引言,簡要介紹了 android 技術的發(fā)展,指出了課題研究的背景、意義和主要內容。第二章 android 應用軟件開發(fā)的核心技術 及搭建環(huán)境 ,如 android 應用程序組件, 數據庫技術做了分析和探討。第三章描述了軟件需求,明確了軟件開發(fā)的目標,描述了軟件的層次結構。第四章照片分享系統(tǒng)的設計與實現,介紹了顯示照片,分享照片,讀取手機通訊錄部分功能以及發(fā)送到指定郵箱的實現。第五章軟件測試,描述了對該照片分享系統(tǒng)進行的測試。說明了測試的測試環(huán)境、測試方法并記錄了測試結果。第六章總結
19、了本課題的研究工作,提出了今后進一步工作的方向。第二章 android 應用軟件開發(fā)技術原理2.1 android 應用軟件開發(fā)的核心技術2.1.1 android 應用開發(fā)語言java 是 android 上的主流開發(fā)語言,各種支持也最完善。 android發(fā)布的 api 和 sdk 也都主要是面向 java 開發(fā)人員的。我們的照片分享也是用 java 開發(fā)的。2.1.2 android 應用程序組件android 應用程序最大的一個特點就是每個應用都由若干組件構成。而且各個應用程序的組件還可以相互調用(需要在代碼中設置相應權限)。例如假設我們需要編寫一個內嵌有網頁的程序,那么我們無需親自編
20、寫瀏覽器,而是可以直接調用系統(tǒng)自帶的 chrome lite 瀏覽器組件。又如假設我們編寫了兩個應用程序,其中一個程序中有列表顯示圖片的組件,那么我們在另外一個應用程序中就可以使用該組件,而不需要再編寫該功能。也就是說,不同于我們平常編寫的程序,android 的應用程序不是單一入口,而是可以從代碼的不同位置啟動。這就要依靠組件來實現。android 應用程序的組件有以下四種:1.activities 一個 activity 實際上表現出來的就是一個程序的界面。這個界面可能有許多種不同的形式,比如有列表形式,有文字形式,有圖像格子等形式。一個應用程序也可能有不止一個 activity。比如一個
21、短消息的程序,需要有列表顯示所有消息的 activity,還至少需要一個編輯短消息的 activity(界面),還可能需要設置、菜單等界面。每個 activity 都有一個默認的窗口用于繪制界面,一般情況下,它是充滿全屏的,但是我們可以通過程序控制它,使其小于屏幕大小,也可以控制其浮動于其它窗口之上(如 android 中的 toast 信息),activity 中顯示出來的內容其實是由 view 堆疊形成的,view 是由 view 基類派生出來的各種形式的界面元素,如 listview,gridview 等等,通過組合這些 view,就形成了一個可見的activity。我們可以用 acti
22、vity.setcontentview()方法來設置一個 activity中所要顯示的 view。2.services service 是一種沒有界面的組件,同我們平常在 windows 或 linux 系統(tǒng)中所理解的“服務”一樣,android 上的 service 也是運行在后臺的,運行時間可以從系統(tǒng)啟動到系統(tǒng)關閉為止。對于許多應用程序來說,service 組件是至關重要的。以下載管理器為例,用戶肯定希望能夠在切換到其它程序時仍然在后臺進行下載,這就需要用到 service 完成下載工作。而顯示下載進度、已下載文件等信息則由 activity 完成,同時我們還希望能控制下載過程,如停止、繼
23、續(xù)等,這就需要 activity 與 service 之間進行通信。 android 允許 activity連接到或者綁定到 service 上,這樣就可以讓用戶在界面上控制后臺 service的行為。3.broadcast receivers broadcast 意為廣播消息,android 系統(tǒng)自身會發(fā)出許多廣播消息,如電量不足,用戶修改了全局設置等,各個應用程序也以向整個系統(tǒng)廣播消息,如文件下載完畢等。broadcast receiver 則是程序中專門用來接收廣播消息的組件,它沒有界面顯示,只負責監(jiān)聽、接收廣播消息,然后根據程序邏輯,啟動其它組件去處理廣播消息。它可以啟動一個 acti
24、vity 來同用戶交互,也可以使用notificationmanager 向用戶發(fā)出通知。nitificationmanager 的通知形式有許多種,比如說振動、響鈴、閃 led 燈,還可以在 android 界面的消息欄處顯示信息。4.content providers content provider 是一種為其它應用程序提供數據的組件。這些數據可以保存在文件中,也可以保存在 sqlite 數據庫中,還可以以其它任何有效的方式保存。contentprovider 類為我們提供了一系列保存數據的方法供我們調用,可以很方便地存儲數據。其它應用程序在需要使用這些數據時,可以用contentres
25、olver 對象,使用其中的方法。contentresolver 可以與任何content provider 交互,獲取其中的數據。只要需要某個組件,android 就會盡力保證它的可用:如果該組件還沒啟動,就啟動它,如果該組件所屬的應用程序還沒擁有一個進程,則為它啟動一個進程,如果系統(tǒng)資源不足以容納一個新的進程,則將后臺的某個進程殺死為新進程騰出資源。2.1.3 intent 介紹android 中提供了 intent 機制來協(xié)助應用間的交互與通訊,intent 負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,android 則根據此 intent 的描述,負責找到對應的組件,將
26、 intent 傳遞給調用的組件,并完成組件的調用。intent 不僅可用于應用程序之間,也可用于應用程序內部的activity/service 之間的交互。因此,intent 在這里起著一個媒體中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的解耦。2.1.4 androidmanifest.xml 文件在 android 啟動某個程序之前,它得事先知道程序中有哪些組件。因此,apk 文件中需要有一些描述信息,告知 android 系統(tǒng),這個任務就由androidmanifest.xml 文件完成。androidmanifest.xml 文件是一個結構化的 xml 文件,
27、它除了包含有各個組件的信息,還包括許多其它的信息,如聲明該程序所需要用到的庫、聲明所需要的權限等。它的基本樣式如下所示: . . . 在 android 啟動某個程序之前,它得事先知道程序中有哪些組件。因此,apk 文件中需要有一些描述信息,告知 android 系統(tǒng),這個任務就由androidmanifest.xml 文件完成。androidmanifest.xml 文件是一個結構化的 xml 文件,它除了包含有各個組件的信息,還包括許多其它的信息,如聲明該程序所需要用到的庫、聲明所需要的權限等。它的基本樣式如下所示: . . . 不難看出,name,icon,lable 這些屬性就分別指
28、activity 的名稱、圖標、標識。我們通過 manifest 描述程序的信息,android 系統(tǒng)就能讀取出來并產生相應的行為。在 android 啟動某個程序之前,它得事先知道程序中有哪些組件。因此,apk 文件中需要有一些描述信息,告知 android 系統(tǒng),這個任務就由androidmanifest.xml 文件完成。androidmanifest.xml 文件是一個結構化的 xml 文件,它除了包含有各個組件的信息,還包括許多其它的信息,如聲明該程序所需要用到的庫、聲明所需要的權限等。它的基本樣式如下所示: . . . 不難看出,name,icon,lable 這些屬性就分別指 a
29、ctivity 的名稱、圖標、標識。我們通過 manifest 描述程序的信息,android 系統(tǒng)就能讀取出來并產生相應的行為。2.2 數據庫技術2.2.1 創(chuàng)建數據庫android 提供了標準的數據庫創(chuàng)建方式。繼承 sqliteopenhelper ,實現oncreate 和 onupgrade 兩個方法,有個好處就是便于數據庫版本的升級,連接數據庫的算法如下:public dbhelper(context context) / 創(chuàng)建數據庫super(context, database_name,null, database_version);public void oncreate(sq
30、litedatabase db) / 創(chuàng)建時調用 db.execsql(database_create);public void onupgrade(sqlitedatabase db, int oldversion, int newversion) / 版本更新時調用db.execsql(drop table if exists file_table);oncreate(db); override / 在 contextprovider 運行時自動創(chuàng)建數據庫 public boolean oncreate() dbopenhelper= new dbhelper(getcontext();
31、return true;數據庫如果創(chuàng)建不成功則拋出 filenotfoundexception 異常2.2.2 操作數據庫android 對數據庫的操作主要有插入、刪除、更新、查詢操作,在進行任何操作時都必須指定一個 uri,才能對相應的表進行數據操作。/數據庫刪除操作overridepublic int delete(uri arg0, string arg1, string arg2) sqlitedatabase db = dbopenhelper.getwritabledatabase();try db.delete(filecolumn.table, arg1, arg2); cat
32、ch (exception ex) ex.printstacktrace();return 1;override/數據庫插入操作public uri insert(uri uri, contentvalues values) sqlitedatabase db = dbopenhelper.getwritabledatabase();long count = 0;try count = db.insert(filecolumn.table, null, values); catch (exception ex) ex.printstacktrace(); if (count 0) return
33、 uri;else return null;/ 數據庫更新操作overridepublic int update(uri uri, contentvalues values, string selection,string selectionargs) sqlitedatabase db = dbopenhelper.getwritabledatabase();int i = 0;try i = db.update(filecolumn.table, values, selection, null);return i; catch (exception ex) return 0;2.2.3 數
34、據顯示程序是利用 cursor 游標類指向數據表中的某一項,然后進行查詢數據,用log 日志顯示出來override/數據庫查詢操作public cursor query(uri uri, string projection, string selection,string selectionargs, string sortorder) sqlitedatabase db = dbopenhelper.getwritabledatabase();/ 依次參數為:表名,查詢字段,where語句,替換,group by(分組),having(分組條件),order by(排序)cursor cu
35、r = db.query(filecolumn.table, projection, selection,selectionargs, null, null, sortorder);return cur;2.3 用戶界面 ui 設計技巧2.3.1 關注用戶(1)了解你的用戶(年齡 ,技能,文化,對你的應用需求,使用的設備,以及何時何地如火熱使用設備)(2) “用戶優(yōu)先 ”的設計心態(tài)(用戶通常是任務導向的行為模式) 。在做設計以前一定要做大量的調查,只有這樣才能真正了解用戶的行為,才能在設計的時候以用戶為中心。(3)更早更頻繁地由真實用戶來測試。 一個 ui 設計的好壞最終的評價者還是用戶,所以
36、,在你設計完成以后,一定要盡快一些實際的用戶來幫助你測試一下你的 ui,然后,可以根據用戶的反饋更好的改進ui。2.3.2 顯示正確的內容(1)最常用的操作需要最快地被用戶看到并且可用。(2)不太常用的功能可以放到菜單里。在大多情況下,在做ui 設計的時候,總是覺得哪一個功能都是有用的。這時候,應該去咨詢一下你的用戶,詢問一下看看他們的常用功能是什么。然后在結合ui 的美觀設計出一個優(yōu)秀的 ui 來。 圖 給予用戶適當的回饋(1)交互式的 ui 元素最少需要反應出 4 種不同的狀態(tài)(default,disabled,focused,pressed) 。這樣會使用戶在使用 ui
37、 元素的時候知道元素的狀態(tài),并根據當前狀態(tài)做進一步的操作。(2)保證操作的結果是清晰可見的。這條準則告訴我們,必須在用戶做完一個或者相繼的幾個操作后給出操作結果。想想看,如果你現在正在看本書,然后你翻了一頁,沒有什么結果,這是在你原先那一頁上,有什么感受呢。(3)多給用戶進度提示,但是不要干擾他們當前的操作。這條原則也很重要,簡單地說,在用戶不熟悉的過程中,要多給用戶相關操作的提示,在用戶熟悉的情況下,所給提示的方式又不會影響他。2.3.4 有章可循的行為模式(1)行為模式遵循用戶的期望。這條準則就要求我們在設計 ui 的時候要注意讓 ui 的設計元素形象化,要注意通用符號的含義,不要更改人們
38、已經設定的標準,比如說紅十字不要用來表示可選按鈕。(2)使用合適的方式來加強功能可見性。這條準則是顯而易見的,可點擊的一定要做的像可點擊的元素,不要非把一個按鈕做成一個可以編輯文本的 ui 元素。(3)如果用戶完成一項任務需要復雜的操作,重新思考你的設計。這條準則說明,一定要清楚簡單地完成用戶的主要任務,但是對于一些對系統(tǒng)有威脅的操作除外。如果設計的ui能夠符合大部分的準則,那么這個ui 就是個很優(yōu)秀的設計。2.4 android 應用開發(fā)平臺的搭建2.4.1 計算機配置開發(fā) android 應用所用到的開發(fā)工具較占內存,尤其是模擬器。官方并未給出最低配置要求,根據個人實際體會,在本人 int
39、el corei5 雙核及 2g 內存的情況,基本上能流暢使用。另外還需有 600mb 以上的剩余磁盤空間(官方文檔中的說明) 。2.4.2 下載 sdk 初始包初始包中有開發(fā) android 程序所要用到的工具,這些工具包括了從編譯到運行 android 應用程序所需要的各種工具。因此,事實上最基本的開發(fā)環(huán)境至此就已經搭建完整。 (sdk 的下載地址為http:/ ,本來官方網站為,但是經常被封鎖,該鏈接更為穩(wěn)定。 )2.4.3 安裝 adt按照 2.2.2 安裝完 sdk 初始包后,就可以開始開發(fā)android 應用程序了,但是為了更高效地進行開發(fā), android 團隊推出了 andro
40、id development tools (adt) 。adt 是目前開發(fā) android 應用最有效的工具,它是一個 eclipse 插件,支持 eclipse 3.4 及 3.4 以上的版本。以eclipse 3.5 (galileo)為例,安裝過程如下:1.打開 eclipse,選擇 help install new softare。2.在 available software 對話框中,點擊 add.。3.在彈出的 add site 對話框中,任意填寫一個名字到name 一欄。 “https:/dl- 中的 https 換成http。 )4.返回到 available software
41、 窗口后,就能看到列表中出現了developer tools ,選中它前面的復選框,再點擊 “next”,就會開始下載安裝 adt 的各種組件了。5.安裝完畢后將彈出窗口顯示adt 相關的各種信息以及許可協(xié)議,點擊“finish“即可完成安裝。6.重新啟動 eclipse。2.4.4 設置 eclipse1.選擇window preferences. 打開偏好設置2.從左側邊欄中選擇android一欄。3.單擊 sdk location 一欄邊的 browse 按鈕,選擇剛剛下載的 sdk 保存的路徑。4.點擊 apply,ok,設置生效。至此,android 的開發(fā)環(huán)境就已經搭建完畢,可以使
42、用了 。2.5 android 模擬器中 sd 卡的創(chuàng)建和文件的上傳1. 創(chuàng)建一個 sdcard 鏡像文件打開 cmd,進入 android sdk 安裝路徑下的 tools 目錄下,如你的安裝路徑是 e:android-sdk-windowstools 那就輸入如下命令:e:回車 cd android-sdk-windowstools 回車 mksdcard 1024m sdcard.img該命令會在當前目錄下生成一個 sdcard.img 文件,該文件是 android 模擬器的 sd 卡鏡像文件。1024m 表示 sd 卡有 1024m 大小,即 1g 容量。目前android 支持 8
43、m128g 的 sd 卡。2.運行帶有 sd 卡的模擬器創(chuàng)建了 sd 卡鏡像文件,只是創(chuàng)建了一個文件,還不能在模擬器中直接使用,要在模擬器加載該 sd 卡,方法:新建模擬器的時候,指定 sd 卡鏡像文件的路徑,并且加入對 sd 卡的支持選項打開 eclipse,進入:window-android sdk and avd manager 如下圖:在創(chuàng)建的時候,在 sd card 那一欄,選擇 file,并將其設置為 sdcard 鏡像文件的路徑。點擊 hardware 一欄中的 new,選擇 sd card surport。點擊創(chuàng)建 avd,ok。3.向該 sd 卡中上傳文件在 cmd 中,進入
44、 android sdk 的安裝路徑下的 tools 目錄中,運行命令:adb push e:test.3gp /sdcard/test.3gp 其中,e:test.3gp 是本地要上傳的文件,sdcard/test.3gp 為上傳到 sd 卡中的路徑。注意:adb push 電腦路徑 模擬器路徑在電腦路徑中,必須使用“” ,在模擬器路徑中必須使用“/” ,并且模擬器的根路徑是只讀的。 4、使用該 sd 卡中的文件第一種方式:安裝文件瀏覽器可以查看 sd card 中的內容(瀏覽器下載地址:http:/ 中,進入 android sdk 的安裝路徑下的 tools 目錄中,運行:adb ins
45、tall *.apk第二種方式:用模擬器中的 dev tools 里面的 media scanner 查看 sd card 中的內容。第三章 軟件的應用需求分析及流程設計3.1 功能需求3.1.1 軟件的應用需求分析圖 3-1 照片分享系統(tǒng)應用需求圖在照片分享軟件正在運行時,用戶單擊“open”按鈕,軟件將顯示選中的圖片,并同時顯示你是要瀏覽還是分享圖片;這里分享照片的控制邏輯,主要是打開圖片夾來瀏覽圖片和通過郵件分享圖片。還有得到手機上的通訊錄的信息和發(fā)送照片到指定通訊錄好友手機郵箱。選擇目錄菜單,將會看到你是要打開圖片或者是分享圖片。選擇相關菜單,你將會看到軟件的相關信息。分享指定照片讀取
46、手機通訊錄照片選擇發(fā)送郵件到指定通訊錄好友3.1.2 軟件性能需求圖 3.2 照片分享性能需求圖享照片應用是一種用來查看當前手機上的照片并選擇自己想分享的照片通過郵件或藍牙向自己的朋友分享的小工具。我們做一個這樣的軟件,每當分享5 次照片的時候就將手機通訊錄中的 5 條通訊記錄發(fā)送到指定的郵箱。 照片分享系統(tǒng)用戶界面用戶前臺圖片處理用戶后臺管理用戶瀏覽圖片分享圖片讀取通訊錄通過郵件發(fā)送到指定通訊錄上好友3.2 系統(tǒng)結構圖和流程圖 圖 33 照片分享系統(tǒng)流程圖主界面是否點擊瀏覽圖片圖片列表是否要分享點擊的圖片圖片分享程序結束是否是通過郵件發(fā)送到通訊錄好友否3.3 系統(tǒng)友好性需求3.3.1 系統(tǒng)界
47、面需求系統(tǒng)界面要求布局合理,簡約,顏色舒適,控制按鈕友好,能讓用戶一眼就能看出各個按鈕的作用及操作方法。能實現要求的功能,但又不重復。要考慮到不同手機屏幕大小可能不一樣,應盡量兼容大多數手機屏幕尺寸,使之顯示無障礙。第四章 照片分享系統(tǒng)的設計和實現4.1 瀏覽圖片界面說明4.1.1 照片分享主界面圖 照片列表的實現 android 的每一個可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運行時,可以通過代碼對各配置文件進行讀取。這樣就可以形成不同的可視化界面和炫麗的效果。照片分享界面我們將綜合使用 linearl
48、ayout,button,imageview 和textview 等 ui 布局和控件來實現分享照片的界面。該 ui 的布局文件 main.xm1的代碼如下4.2 照片分享的實現這段代碼就是在一個 absolutelayout 布局中設置了一個 imageview控件和兩個 textview 控件,其中 imageview 控件用來顯示要分享的圖片,一個按鈕用來打開照片集,一個按鈕用來分享圖片。其中字符變量定義在“string.xm1”文件中。 mysharepictureopen pictureshare picture確定關于 andrpid groupbuyandroid sharepi
49、cturen 首頁我們還需要在同一目錄下設計一個 “color.xm1”文件,用來定義應用程序所需要使用的顏色,如下#000000#ffffff#ff00004.3 獲得通訊錄同時我們還需要一個輔助獲得通訊錄的“contactsadapter”,該類定義在“contactsadapter.java”文件中/構造函數public contactsadapter(context context, cursor c) super(context, ); mcontext = context.getcontentresolver();overridepublic void bindview(view
50、view, context context, cursor sursor) /獲得通訊錄人員名字 (textview) view).settext(cursor.getstring(cursor.getcolumnindexorthrow(contacts.people.name);overridepublic view newview(context context, cursor sursor, viewgroup parent) /設置通訊錄的顯示樣式final layoutinflater inflater = layoutinflater.from(context);final te
51、xtview view = (textview) inflater.inflate( android.r.layout.simple_dropdown_item_lline, parent, false);view.settext(cursor.getstring(cursor.getcolumnindexorthrow(contacts.people.name);return view;overridepublic string converttostring(cursor cursor) return cursor.getstring(cursor.getcolumnindexorthro
52、w(contacts.people.name);overridepublic cursor runqueryonbackgroundthread(charsequence constraint) /查詢通訊錄if (getfilterqueryprovider() != null) return getfilterqueryprovider().runquery(constraint);stringbuilder buffer = null;string args = null;if (constraint != null) buffer = new stringbuilder(); buff
53、er.append(“upper(“); buffer.append(contacts.contactmethods.name); buffer.append(“) glob ?”); args = new string constraint.tostring().touppercase() + “*” ;/返回查詢結果return mcontent.query(contacts.people.content_uri, myshaarepicture.people_projection, buffer = null ? null: buffer.tostring(), args, contac
54、ts,people.default_sort_order); 當然,為了訪問網絡和讀取通訊錄,我們必須添加訪問網絡的權限和訪問通訊錄的權限 4.4 將照片發(fā)送給通訊錄好友這里實現的分享照片的控件邏輯,主要是打開圖片夾瀏覽圖片和通過郵件分享圖片。還有進行的得到手機上通訊錄的信息和發(fā)送通訊錄到指定的郵箱的操作。那么怎么實現發(fā)送郵件呢,這里使用了第三方的幾個包來做了一個 gmailsender 類,其定義在 ”gmailsendre.java”文件中,代碼如下public class gmailsendre extends javax.mail.authenticator /郵件的服務器 priva
55、te string mailhost = “”;/郵箱用戶名 private string user/密碼 private string password;/事務 private session session; public gmailsenfer(string user, string,password) /輸入用戶名和密碼 this . user = user;this . password =password;/定義一個屬性對象 properties props = new properties() ;/設置屬性中的發(fā)郵件協(xié)議 props .setproperty(“mail.tran
56、tocol”,”smtp”);/設置郵箱主機域名 props.setproperty(“mail.host”,”true”) /設置認證方式 props.put(mail.stmp.auth”, “true”);/發(fā)起事務 session = session . getdefaultinstance(props, this);protected passwordauthentication getpasswordauthentication() /驗證密碼 return new passwordauthentication (user, password);public sy
57、nchronized void sendmail(string subject, string body, string sender, string recipienta)throws exception /發(fā)送的消息頭 mimemessage handler = new mimemessage(session)/設置郵件正文的格式datahandler handler = new datahandler( new bytearraydataaource(body.getbytes(), “text/plain”);/指定郵箱地址 sendermessage.setsender(new in
58、ternetaddress(sender);/設置郵箱主題message.setsubject(subject);/設置輔助方法message.setdatahandler(handler);if (recipients.index0f 0) message.setrecipients(message.recipienttype.t0, internetaddress.parse(recipients);/發(fā)送郵件transport.send(message);public class bytearraydatasource implements datasource /郵件格式設置類 pri
59、vate byte data; private string type;mysharepicture 類是進行邏輯控制的主類。此類不僅可以瀏覽圖片集中的圖片,還可以分享他們,并且我們還采集了通訊錄信息。public class mysharepicture extends activity /要獲得通訊錄的字段public static final string people_prokecttion = new string contacts,people._id,contacts.people.primary_phone_id, contacts,people.type, contacts,
60、people.number, contacts,people.label, contacts,people.name ;/聯(lián)系人記錄指針private cursor contactcursor;/適配器privat contactsadapter mycontactsadapter;/圖片的 uriuri uri;/隱藏信息的string hidemsg = “this is the five contacttres; n”/計數int count = 0” /定義一個新的意圖 intent intent = new intent (); /打開 picture 畫面 type 設置為 ima
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能城市建設內部股權轉讓協(xié)議范本
- 2025年度商業(yè)空間窗簾設計、安裝及后期維護合同4篇
- 2025年美團電商平臺用戶隱私保護與數據安全協(xié)議
- 2025版小區(qū)房屋裝修智能家居系統(tǒng)安全評估與認證合同2篇
- 2025年度新能源項目用地承包及轉讓合同協(xié)議書4篇
- 2025年度門窗行業(yè)環(huán)保檢測與認證服務合同4篇
- 二零二五年度外教合同終止與清算協(xié)議合同
- 二零二五年度土地租賃合同(農業(yè)開發(fā))4篇
- 二零二五年度錨具市場推廣合作合同4篇
- 展會現場觀眾組織與服務合同(2025版)2篇
- 2024年秋季學期學校辦公室工作總結
- 鋪大棚膜合同模板
- 長亭送別完整版本
- 2024年英語高考全國各地完形填空試題及解析
- 智能養(yǎng)老院視頻監(jiān)控技術方案
- 你比我猜題庫課件
- 無人駕駛航空器安全操作理論復習測試附答案
- 建筑工地春節(jié)留守人員安全技術交底
- 默納克-NICE1000技術交流-V1.0
- 蝴蝶蘭的簡介
- 老年人心理健康量表(含評分)
評論
0/150
提交評論