Time of Update: 2017-02-27
八、 指定回呼函數本節講的內容十分關鍵。不管Linux驅動程式的功能多麼複雜還是多麼“酷”,都必須允許使用者空間的應用程式與核心空間的驅動程式進行互動才有意義。而最 常用的互動方式就是讀寫裝置檔案。通過file_operations.read和file_operations.write成員變數可以分別指定讀寫
Time of Update: 2017-02-27
五、指定與驅動相關的資訊雖然指定這些資訊不是必須的,但一個完整的Linux驅動程式都會指定這些與驅動相關的資訊。一般需要為Linux驅動程式指定如下資訊。1. 模組作者:使用MODULE_AUTHOR宏指定。2. 模組描述:使用MODULE_DESCRIPTION宏指定。3. 模組別名:使用MODULE_ALIAS宏指定。4. 開源協議:使用MODULE_LICENSE宏指定。除了這些資訊外,Linux驅動模組自己還會包含一些資訊。讀者可以執行下面的命令查看word_count.ko的資訊。#
Time of Update: 2017-02-27
Android本質上是基於Linux核心的系統,也就是說Android就是一種Linux作業系統。只不過大多數時候都會運行在ARM架構的裝置上,例如,Android手機、平板等。Android驅動實際上就是Linux驅動,只是這裡使用Android深度探索(卷1):安裝C/C++交叉編譯環境 介紹的交叉編譯器將Linux驅動編譯成了ARM架構的,所以驅動可以安裝在Android模擬器、Android手機(需要root)或平板上(這些裝置
Time of Update: 2017-02-27
本文使用的軟體版本Android:4.2.2Linux核心:3.1.10在上一篇文章中介紹了init的初始化第一階段,也就是處理各種屬性。在本文將會詳細分析init最重要的一環:解析init.rc檔案。init.rc檔案並不是普通的設定檔,而是由一種被稱為“Android初始化語言”(Android Init
Time of Update: 2017-02-27
本文使用的軟體版本Android:4.2.2Linux核心:3.1.10本文及後續幾篇文章將對Android的初始化(init)過程進行詳細地、剝絲抽繭式地分析,並且在其中穿插了大量的知識,希望對讀者瞭解Android的啟動過程又所協助。本章主要介紹了與硬體相關初始設定檔案名的確定以及屬性服務的原理和實現。Android本質上就是一個基於Linux核心的作業系統。與Ubuntu Linux、Fedora
Time of Update: 2017-02-27
【針對4.2.5版本】對移動開發一直比較感興趣,可是沒有學習過JAVA,聽說了Mono項目,網上也已經有了破解檔案,就 決定自己裝一個學做開發。本來Mono for Android 官方網上有一個一鍵安裝程式,可是安過很不爽要下 JAVA SDK 1.6(1.7 不 能,必須1.6)、jdk、Mono Windows 運行時,估計加有900M,伺服器在國外,我安了幾次都沒有成功。 並且下載的是最新的版本,網上找不到破解的版本。下面手動安裝一下Mono for Android
Time of Update: 2017-02-27
Android開發入門(二十)內容提供者 20.3 經過預定義的查詢字元Android開發入門(二十)內容提供者 20.2 ContentProvider的使用Android開發入門(二十)內容提供者 20.1 資料共用Android開發入門(十九)資料庫 19.3 預建立資料庫Android開發入門(十九)資料庫 19.2 使用資料庫Android開發入門(十九)資料庫 19.1建立資料庫輔助類Android開發入門(十八)檔案 18.4使用靜態資源Android開發入門(十八)檔案 18.3
Time of Update: 2017-02-27
Android API Demos中有很多非常Nice的例子,這些例子的代碼都寫的很出色,如果大家把API Demos中的 每個例子研究透了,那麼恭喜你已經成為一個真正的Android高手了。這也算是給一些比較迷茫的Android開 發者一個指出了一個提升自我能力的方向吧。API Demos中的例子眾多,今天我們就來模仿其中一個3D變換的 特效,來實現一種別樣的圖片瀏覽器。既然是做中軸旋轉的特效,那麼肯定就要用到3D變換的功能。
Time of Update: 2017-02-27
除了使用自己手動寫的查詢URI,可以也使用Android內建的URI查詢常量。例如,除了使用 content://contacts/people,可以寫這個指派陳述式。Uri allContacts = ContactsContract.Contacts.CONTENT_URI; 一些Android內建的預定義查詢字串常量。Browser.BOOKMARKS_URIBrowser.SEARCHS_URICallLog.CONTENT_URIMediaSto
Time of Update: 2017-02-27
想要理解ContentProvider的最佳方式就是自己動手去嘗試一下。下面介紹如何使用一個內建的Contacts ContentProvider。1. 建立一個工程,Provider。2. main.xml中的代碼。<?xml version="1.0" encoding="utf-8"?> <LinearLayout
Time of Update: 2017-02-27
在上一章節中,我們介紹了資料持久化的幾種方法:喜好設定,檔案,以及資料庫。在儲存複雜的資料結構 時,推薦使用SQliteDatabase。但是,共用資料就成了一種挑戰,因為,資料庫只對建立它的程式包可用。在這一章節中,將會介紹Android特有的資料共用方式:使用ContentProvider。也會介紹如何使用內 置的ContentProvider,以及建立自己的ContentProvider,以便在多個程式包之間共用資料。在
Time of Update: 2017-02-27
在開發過程中,有時候,預先建立好資料庫比在程式運行時建立資料庫更加地高效。舉個例子,你想編寫 一個程式,這個程式把你去過的地方的座標都顯示出來。這種情況下,預先建立資料庫是更加容易的,比在 運行時建立資料庫。這裡,需要使用一些免費的工具。推薦使用SQLite Database Browser,支援多 平台,並且免費。下載地址: http://sourceforge.net/projects/sqlitebrowser/下面是建立一個 連絡人表的例子。在設計階段把資料庫建好,下
Time of Update: 2017-02-27
DBAdapter已經建立好了,現在我們可以去使用資料庫了。下面的章節,將介紹常規的CRUD(增加,讀取, 更新,刪除)。往表中新增連絡人...。1. 使用之前的項目,在DatabasesActivity.java中添加 一些代碼。public class DatabasesActivity extends Activity { /** Called when the activity is first created. */ @Override public void
Time of Update: 2017-02-27
目前所介紹的方法只是用來儲存一些簡單的資料。如果想要儲存關係型資料,那麼使用資料庫將會更加的 效率。舉個例子,你要儲存學校裡面每一個學生的分數,這種情況下,最好使用資料庫,因為你可以查詢某 個學生的具體分數。而且,使用資料庫能夠保持不同資料之間關係的完整性。Android使用SQLite數 據庫系統。使用這種資料庫,只有建立它的程式可以使用它,別的程式無法訪問到它。在接下來的幾 節中,會簡述如何通過編碼在你的程式中建立一個SQLite資料庫。對於Android來說,通過編碼建立的資料庫
Time of Update: 2017-02-27
除了可以在運行時去建立並使用檔案,也可以在設計階段把檔案放在程式包中,這樣一來就可以在運行時 去使用他們。舉個例子,你想把一些協助檔案打包進程式,當使用者需要的時候,就可以展示給他們看。在這 種情況下,應該把檔案放在res/raw檔案夾下面。想要在代碼中使用這個檔案,需要調用Activity的getResources()方法,返回一個Resources對象。然後 ,使用它的openRawResource()方法去開啟res/raw檔案夾中的檔案:/** Called when the
Time of Update: 2017-02-27
之前的幾篇文章描述了在Android應用中儲存資料的主要三種方式:SharedPreferences,內部儲存和外部 SD卡儲存。究竟在你的應用中採用那種方式呢?下面有一些建議:1. 如果你有索引值對形式的資料, 使用SharedPreferences對象。舉個例子,如果你想儲存使用者的一些屬性,比如名字,膚色,生日或最後的登 陸日期,那麼SharedPreferences對象就是儲存這些資料的最佳方式。2. 如果你想儲存某些特殊的數
Time of Update: 2017-02-27
上一節介紹了如何把檔案儲存體到內部裝置。有的時候,需要把檔案儲存體到外部存放裝置,比如SD卡。因為 SD卡具有更大的儲存空間,同時也可以很容易的和其他使用者分享這些檔案。使用上一節的例子,把用 戶輸入的文字儲存在SD卡,修改onClick()事件。如下:public class FilesActivity extends Activity { EditText textBox; static final int READ_BLOCK_SIZE = 100;
Time of Update: 2017-02-27
SharedPreferences對象能夠讓你去儲存一些“索引值對”類型的資料,比如使用者id,生日,性別,身份證 號等等。但是,有的時候你需要去使用傳統的檔案系統去儲存資料。例如你可能想要去儲存一篇文章,而這 篇文章要被展示在你的應用中。在Android系統中,你也可以使用java.io包去實現這個功能。在 Android系統中,第一種儲存檔案的方法是儲存到內部裝置。下面展示如何儲存用書輸入的字串到內部儲存 裝置。1. 建立一個工程,Files。2.
Time of Update: 2017-02-27
在我的裝置上面,預設的喜好設定名字是net.manoel.UsingPreferences_preferences.xml,這個名字是使 用包名作為首碼的。然而,給喜好設定定義一個特殊的名字也是非常有益的。可以按照下面這麼做。public class AppPreferenceActivity extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) {
Time of Update: 2017-02-27
WebView能夠讓你在activity中去內嵌一個web瀏覽器。如果你的應用需要內嵌一些web內容的話,這是非 常有用的。下面展示如何在activity中通過編碼的方式去載入網頁中的內容。1. 建立一個工 程,WebView。2. main.xml中的代碼。<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.