freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android火車票查詢系統(tǒng)畢業(yè)論文(編輯修改稿)

2024-12-16 16:08 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 一轉(zhuǎn)變過程中的主力軍。隨時(shí)隨地可用,傳感器豐富等相對(duì)傳統(tǒng)桌面計(jì)算機(jī)的突出優(yōu)點(diǎn),為智能手機(jī)改變?nèi)藗兊墓ぷ髋c生活提供了各種可能。 智能手機(jī)將逐步發(fā)展成人們眼、耳、腦以及不存在感官的延伸,幫助人們獲取、處理、存儲(chǔ)與呈現(xiàn)信息,幫助人們作出決定,展現(xiàn)給人們美好的事物,引領(lǐng)人們更加智慧與舒適地生活。 移動(dòng)平臺(tái)是目前和將來相當(dāng)一段時(shí)間應(yīng)用部署的重要平臺(tái)。 2020 年年初,蘋果應(yīng)用商店已經(jīng)擁有了超過 53 萬款應(yīng)用,而 Google Play 所能提供的應(yīng)用數(shù)目也已突破了 40 萬大關(guān),涵蓋了游戲、效率、社交、購物、交通、體育、圖書與工具書等等領(lǐng)域,滲入了生活的方方面面。下載量上,僅以 Android 以例。最高下載量已達(dá) 5 億(谷歌地圖),相當(dāng)多的免費(fèi)應(yīng)用的下載量在十萬級(jí)別以上,收費(fèi)應(yīng)用也在萬級(jí)別以上(具體請(qǐng)參照 Google Play)。一款受歡迎的應(yīng)用的市場(chǎng)價(jià)值十分巨大,而且這一市場(chǎng)才剛剛起步。 Android 技術(shù) 背景 Android 是用于移動(dòng)設(shè)備上的一個(gè)包含一操作系統(tǒng),一系列中間件,以及部分關(guān)鍵應(yīng)用軟件棧。 Android SDK 網(wǎng) 站提供了在 Android 平臺(tái)上使用 Java 編程語言開發(fā)應(yīng)用程序所必須的工具和 API[4]。 Android 的特性 ? 應(yīng)用框架 ,實(shí)現(xiàn)了組合的重用與替換 ? Dalvik 虛擬機(jī) ,專為移動(dòng)設(shè)備優(yōu)化 ? 集成的瀏覽器 ,基于開源的 WebKit 引擎 ? 優(yōu)化的圖形 ,由一個(gè)定制的 2D 圖形庫驅(qū)動(dòng), 3D 圖形基于 OpenGL ES 規(guī)范(硬件加速可選) ? 媒體支持 ,支持常用音頻、視頻以及圖像格式( MPEG4, , MP3, AAC, AMR, JPG, PNG, GIF) ? GSM 通話 (依賴硬件) 北京工業(yè)大學(xué)耿丹學(xué)院 大學(xué)畢業(yè) 論文 8 ? 藍(lán)牙, EDGE(增強(qiáng)型數(shù)據(jù)速率 GSM 演進(jìn)技術(shù)), 3G,以及 WiFi(依賴硬件) ? 相機(jī), GPS,指南針,加速計(jì) (依賴硬件) ? 豐富的開發(fā)環(huán)境 ,包括一個(gè)設(shè)備模擬器,測(cè)試工具,內(nèi)存和性能分析,以及用于Eclipse IDE 的一個(gè)插件 Android 架構(gòu) 圖 1 Android 架構(gòu)圖 Android 架構(gòu)由上至下分四層,如圖 1。描述如下: ? 應(yīng)用層 :包括由系統(tǒng)默認(rèn)提供了桌面、聯(lián)系人、通話、瀏覽器 等基礎(chǔ)應(yīng)用,以及由廣大開發(fā)人員開發(fā)、可下載安裝的拓展應(yīng)用。拓展應(yīng)用訪問下層應(yīng)用框架層方面,和由廠商提供的基礎(chǔ)應(yīng)用一樣,沒有任何尊卑之別。 ? 應(yīng)用框架層 :應(yīng)用開發(fā)基本的 API,提供包管理、通話管理、資源管理、位置管理、通知管理、 Activity 管理,窗口管理、內(nèi)容提供設(shè)施、視力系統(tǒng)。 ? 庫 : 用 C/C++寫成。提供 SGL 底層 2D 繪圖引擎,安全套接層,嵌入式標(biāo)準(zhǔn) C庫, OpenGL 3D 繪圖, FreeType 字體,瀏覽器核心,用戶空間顯示管理,媒體框架,以及輕量級(jí) SQLite 關(guān)系型數(shù)據(jù)庫。 ? 運(yùn)行環(huán)境 :與 JRE 極其相似。 核心包包含了在 Java 開發(fā)中常用的類庫如 IO、 Utility等; Dalvik 虛擬機(jī)類似 JVM,同樣也是專為 Android 定制,針對(duì)手持設(shè)備,在存儲(chǔ)、計(jì)算以及功耗等方面作了格外優(yōu)化。 ? Linux 內(nèi)核 : Android 整個(gè)操作系統(tǒng)基于 Linux 內(nèi)核,內(nèi)核提供顯示、照相、閃北京工業(yè)大學(xué)耿丹學(xué)院 大學(xué)畢業(yè) 論文 9 存、軟鍵盤、 WiFi、音頻等驅(qū)動(dòng)程序,提供對(duì)進(jìn)程間通信機(jī)制 Binder 的驅(qū)動(dòng),提供電源管理服務(wù)。 Android 平臺(tái)本地應(yīng)用的開發(fā) 同 PC 上應(yīng)用的部署模式一樣, Android 應(yīng)用 也可有純本地應(yīng)用, C/S 模式 和 B/S 模式。此外, C/S 和 B/S 相 結(jié)合的模式 —— 本地應(yīng)用利用 Web 控件顯示 Web 頁面,或 Web應(yīng)用利用 Javascript 調(diào)用本地程序 —— 也 十分常見 。 此外 ,具有數(shù)據(jù)同步功能的本地應(yīng)用模式,在聯(lián)系人、日歷、電子郵件等核心應(yīng)用中都有體現(xiàn)。 虛擬機(jī)之上的 Java 應(yīng)用 Android 應(yīng)用(至少是目前)是使用 Java 語言 開發(fā)的。 Java 代碼被編譯成字節(jié)碼,再被編譯成 .dex 可執(zhí)行文件 , 以在 Dalvik 虛擬機(jī)上高效運(yùn)行。 Android 應(yīng)用由四大組件構(gòu)成—— Activity, Service, Content Provider, 和 Broadcast receiver。 每個(gè)組件以類的形式存在。類應(yīng)該具有高度的內(nèi)聚性;類與類之間應(yīng)該具有極低的耦合性。 Activity 負(fù)責(zé)呈現(xiàn)用戶界面并與用戶交互; Service 運(yùn)行在后臺(tái),負(fù)責(zé)處理耗時(shí)操作,或是為服務(wù)遠(yuǎn)程進(jìn)程; Content Provider 負(fù)責(zé)管理可被共享的應(yīng)用程序數(shù)據(jù); Broadcast receiver 則能響應(yīng)系統(tǒng)級(jí)的廣播消息。 Android 系統(tǒng)設(shè)置獨(dú)有的特點(diǎn)是,任何應(yīng)用都能啟用其他應(yīng)用的組件,顯式或隱式地。一個(gè) Activity 可以調(diào)用另一個(gè) Activity 或 Service; Service 可在 Activity 結(jié)束之后關(guān)閉,或繼續(xù)運(yùn)行。當(dāng)系統(tǒng)啟用某一應(yīng)用的某一組件,該應(yīng)用的進(jìn)程就被啟動(dòng)(如果不是已經(jīng)啟動(dòng)了的話),該組件所需的類就被初始化。不同于其他的系統(tǒng), Android 應(yīng)用程序沒有唯一的入口(比如就沒有 main()函數(shù)) [6]。 Linux 之上的 C/C++本地代碼 Android 應(yīng)用由 Java 所寫,運(yùn)行在虛擬機(jī)上,在處理大量數(shù)值、矩陣運(yùn)算時(shí),效率比較低。 C、 C++則直接運(yùn)行于硬件之上,能充分發(fā)揮硬件的性能。此外,大量傳統(tǒng) 與廣泛使用 的底層庫文件(包括圖形 圖像處理、數(shù)據(jù)庫管理系統(tǒng)等)都是由 C/C++寫成,它們向Android 平臺(tái)的遷移應(yīng)以怎樣的方式進(jìn)行呢?下面介紹三種 方式 : JNI, JNA 和 JavaCPP。 1) JNI( Java Native Interface) JNI, Java 本地接口,是一個(gè)允許運(yùn)行在 Java 虛擬機(jī)上的 Java 代碼調(diào)用本地代碼或被本地代碼調(diào)用的應(yīng)用編程框架。本地代碼即指用 C/C++或匯編寫成的、依賴硬件和操作系統(tǒng)平臺(tái)的程序或庫。它定義了可管理代碼(用 Java 語言寫成)與本地代碼交互的方法。它廠商中立,支持從動(dòng)態(tài)鏈接庫載入代碼;雖然繁瑣,但 常能獲得可觀的效率 [7]。 2) JNA( Java Native Access) JNA, Java 本地訪問, 是 SUN 公司主導(dǎo) 研 發(fā)的,建立在經(jīng)典的 JNI 的基礎(chǔ)之上的一個(gè) 開源 框架。 它是也另一個(gè)訪問本地代碼的方法,大有取代 JNI 的趨勢(shì)。 JNA 的設(shè)計(jì)就是為了提供一種自然的方式、以最少的工作量實(shí)現(xiàn)對(duì)本地代碼的訪問。它不需要像 JNI北京工業(yè)大學(xué)耿丹學(xué)院 大學(xué)畢業(yè) 論文 10 中那樣的 樣板文件 或生成的粘合代碼 [9]。 JNA堪比 Window 的 P/Invoke 和 Python的 ctype。 但是, Android 官方并沒有集成 JNA。據(jù) Android 開源項(xiàng)目參與者 fadden 回答:第一是因?yàn)樾阅懿蝗?JNI,在對(duì)性能要求高的應(yīng)用中人們更傾向于使用 JNI;第二是因?yàn)槭褂肑ava 和公開的 API 來實(shí)現(xiàn)應(yīng)用更有利用應(yīng)用程序自身和 Android 的發(fā)展;第三是 JNA 遵循的是 LGPL 許可,將它放入 Android 官方發(fā)行會(huì)帶來許可問題。 盡管如此 , Android 官方 仍然 會(huì)考慮在虛擬機(jī)中提供 掛鉤 ,允許開發(fā)者將 JNA 庫作為應(yīng)用程序安裝包的一部分,自行使用 [10]。 JNA 源代碼可從 GitHub 獲得 [11]。 3) JavaCPP JavaCPP 提供了在 Java 中高效訪問 C++的方法,與某些 C/C++編譯器與匯編語言交互的方式頗為類似。在其底層,同樣采用的是 JNI,因此所有的 Java 實(shí)現(xiàn)它都支持,包括Android。與其他訪問本地代碼的途徑(包括 SWIG, CableSwig, JNIGeneratorApp,JNIWrapper, Platform Invoke, GlueGen, JNIDirect, JNA, JniMarshall, JNative, J/Invoke,HawtJNI, BridJ 等 等)所明顯不同的是,它高效而自然地支持 C++語言許多經(jīng)常被認(rèn)為有弊病的特性,包括操作符重載、模板類和模板函數(shù)、成員函數(shù)指針、回調(diào)函數(shù)、嵌套結(jié)構(gòu)體定義、可變長(zhǎng)參數(shù)、嵌套命名空間、包含任意循環(huán)的大數(shù)據(jù)結(jié)構(gòu)、多繼承、按值 /引用 /微量傳遞、匿名結(jié)構(gòu)體、位域、異常、析構(gòu)以及垃圾回收。 JavaCPP 項(xiàng)目的作者 samuel已經(jīng)通過 JavaCPP,為 OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect,videoInput, 和 ARToolKitPlus 等圖像庫生成了完整的接口, 集成到了他的開源項(xiàng)目 JavaCV當(dāng)中 [18]。 JavaCPP 底層實(shí)現(xiàn)最開始使用的是 JNA,后來又回到了 JNI[10]。 Android 平臺(tái)數(shù)據(jù)的 存儲(chǔ)與同步 嵌入式關(guān)系數(shù)據(jù)庫管理系統(tǒng) SQLite SQLite 是一個(gè)包含一個(gè)自包含、無服務(wù)、零配制、事務(wù)型的 SQL 數(shù)據(jù)庫引擎的軟件庫。它是世界上 最流行的數(shù)據(jù)庫引擎之一。并且, SQLite 的 源代碼已經(jīng)進(jìn)入了公共域,可自由使用 [11]。 Android 提供了對(duì) SQLite 數(shù)據(jù)庫的完全支持。你所創(chuàng)建的任何數(shù)據(jù)庫都能被當(dāng)前應(yīng)用中的任何類按名 訪問,當(dāng)前應(yīng)用之外的類則不行 [12]。 SQLite 3 中的數(shù)據(jù)類型 [14] 大部分?jǐn)?shù)據(jù)庫引擎(就我們所知,除 SQLite 之外的任何其他數(shù)據(jù)庫引擎)使用著傳統(tǒng)的靜 態(tài)類型。靜 態(tài)類型下,一個(gè)值的數(shù)據(jù)類型由其容器 —— 該值所存儲(chǔ)在的列 —— 所決定。 SQLite 使用一種更加泛化的動(dòng)態(tài)類型系統(tǒng)。在 SQLite 中,一個(gè)值的數(shù)據(jù)類型依賴于其值本身而非其 容器。在其他靜態(tài)類型數(shù)據(jù)庫上能使用的 SQL 語言,在 SQLite 上同樣能使用;在這一意義上講, SQLite 的這一動(dòng)態(tài)類型系統(tǒng)相對(duì)其他數(shù)據(jù)庫的靜態(tài)類型系統(tǒng)具有向后兼容的能力。而且, SQLite 中的動(dòng)態(tài)類型能讓它完成傳統(tǒng)類型數(shù)據(jù)庫所不能完成的工作。 北京工業(yè)大學(xué)耿丹學(xué)院 大學(xué)畢業(yè) 論文 11 最后,值得注意的是, SQLite 對(duì)特殊的一列 ROWID 的處理。它與在 Android 中對(duì)SQLite 的訪問密切相關(guān)。 ROWID 和整型主碼 SQLite 表的每一行都有一個(gè) 64 位有符號(hào)整數(shù)鍵,唯一地標(biāo)識(shí)表中該一行。該整數(shù)通常被稱作“ rowid”。 rowid 的值可使用以下任意列名的任意大小寫形式訪問:“ rowid”“ oid”或“ _rowid_”。如果一個(gè)表已經(jīng)存在了一個(gè)用戶定義的名叫“ rowid”“ oid”或“ _rowid_”的列,則使用這些名字時(shí),訪問的是用戶定義的列;這一整型 rowid 行將不再能被檢索到[15]。 SQLite 的每一張表都以一 棵 B 樹的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)。該樹包含了對(duì)每一行的一個(gè)入口,入口地址是一個(gè) 整型主碼 ( INTEGER PRIMARY KEY),或 rowid。這意味著按 rowid 檢索或排序記錄速度極快。搜索某一指定或在某一范圍內(nèi)的 rowid 的行,比相同情況下在其他主碼或索引上搜索,要快一倍 [15]。 也正是這個(gè)原因, Android 中重要的 UI 組件 ListView 訪問 SQLite 數(shù)據(jù)庫所使用的適配器 CursorAdapter 對(duì)查詢結(jié)果 Cursor 的列有一個(gè)特殊的要求:必須要有一 個(gè)名叫“ _id”的列 [16]。在實(shí)現(xiàn)上, ListView 的一行(即一個(gè) ListItem)對(duì)應(yīng) Cursor 的一行;據(jù)觀察,Android 為該 ListItem分配了 id,其值正是“ _id”列的值??赏ㄟ^以下方法獲得 ListView中的某一項(xiàng)的 id: 方法一: 單擊列表項(xiàng)的回調(diào)函 void (ListView l, View v, int position, long id)的形參 中本身就有 id; 方法二: 長(zhǎng) 按 列 表 項(xiàng) , 引 起 上 下 文 菜 單 彈 出 的 回 調(diào) 函 數(shù) boolean (MenuItem item)中,可以這樣取得被長(zhǎng)按列表項(xiàng)的 id: //獲取彈出菜單的菜單信息;該菜單信息包含了適配器上下文信息,其中就包含了適配器為當(dāng)前列表項(xiàng)綁定的( Cursor 的) id AdapterContextMenuInfo info=(AdapterContextMenuInfo) ()。 //當(dāng)前列 表項(xiàng)的 id int id=。 此外,要獲取當(dāng)前列表項(xiàng)中子 View 的值,也有快捷的方法: //當(dāng)前列表項(xiàng)在適配器上的位置 int position=。 //獲取適配器為當(dāng)前列表項(xiàng)綁定的 Cursor(或一行記錄) Cursor cursor = (Cursor) getListAdapter().getItem(position)。 //反過來獲取 Cursor 中的列“ _id”的值,與 對(duì)比 String _id = ((_id))。 (TAG, _id at position + position + , id + id +
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1