2014年8月1日 星期五

觀察: 開發筆記: 1) 專案基本設定



-專案基本設定
1. Menus

2. 對話視窗與日期挑選器

3. Spinner 與 AutoCompleteTextView

4. Gallery 與 GridView

5. ListView

6. 自訂 View 元件與 2D 繪圖

7. 補間動畫

8. Drawable 動畫


- 平板電腦 UI 設計概念
雖然設計給手機的 app 在平板上也可以執行,設計概念也差不

多,但是細看之下會有一些問題。如下圖。

其中最大的差別在於畫面尺寸的不同,造成使用習慣的些微差

異,UI 設計也因此有所不同。

1. Fragment 生命週期

2. Activity 畫面切割

3. ActionBar

4. Tabs


- 行動資料庫 SQLite
資料存取是應用程式開發的重頭戲,設計好 UI 和畫面流程設計

之後,如何把靜態或動態的資訊處理之後呈現到使用者面前是

很重要的。而 Android app 的資料存取有下列議題需要注意和研

究。

1. Android 資料存取概論。

2. Assets

3. Resources

4. Shared Preferences

5. Internal Storage

6. External Storage

- 行動資料庫 SQLite
SQLite 是一個麻雀雖小五臟俱全的資料庫系統,而且作者將原

始碼公開並捐出成為公共財產,無論使用的目的如何均無須支

付任何費用,因此非常受開發者的喜愛。

SQLite 資料庫直接將資料儲存在本地端,而且支援完整的資料

庫功能,讓行動裝置可以發揮極大的功能,就算在手機上開發

進銷存軟體也是沒問題的,只是螢幕太小 UI 不易設計。

在 sdk > tools 目錄底下可以找到 sqlite3.exe 檔,執行它即可進

入 SQLite 資料庫的指令操作模式,可以新增資料庫,並對資料

庫進行操作和資料庫程式撰寫,跟一般大型資料庫的 SQL 指令

模式環境很類似。如下圖。


- Google 地圖
在 Android app 想使用 Google 地圖服務,需要使用 Google 所釋

出的元件 MapView,而要使用 MapView 功能需申請該 API 金鑰

才能正常顯示 Google 地圖,否則使用 MapView 只能顯示空白地

圖。

1. 申請 API 金鑰

2. 查詢並顯示自己的所在位置

3. 顯示指定位置

4. 標記的使用

5. LoactionListener 與 LoactionManager

6. 使用地名、地址查詢位置

7. 導航功能

 - 感應器應用
手機或平板上的感應器就像人類的感官一樣,可以說是人類感

官的延伸,可以提供我們更多環境數據來分析應用,帶來更多

便利性的服務。

與 Android 感應器有關的函式庫都放在 android.hardware 套件裡

,所支援的感應器如下網頁 Summary 所列:

http://developer.android.com/intl/zh-

tw/reference/android/hardware/Sensor.html

然而不是每一台 Android 行動裝置都有上述所列的感應器,另外

Android 模擬器無法模擬感應器功能,所以建議直接在實機上測

試才好。

常用的感應器如下:

1. 加速度感應器

2. 方位感應器

3. 接近感應器

4. 光線感應器

 - 多媒體功能
Android 系統支援許多常見的多媒體格式,讓開發者可以很容易

的開發撥放器 app,支援的多媒體格式如下列網頁的 Table 1 ~

Table 3。
http://developer.android.com/intl/zh-tw/guide/appendix/media-

formats.html

1. 播放 Audio 資源檔案

2. 播放 Audio 外部檔案或網路資料串流

3. 播放 Video 檔案

4. 錄製 Audio 檔案


 - 相機功能
Android 手機幾乎都有內建相機鏡頭,Android 2.3 開始支援存取

多個相機鏡頭的功能,所以現在的 Android 幾乎都有前後兩個鏡

頭,方便使用者拍照和視訊使用。

自行編寫像機應用程是很不容易,使用內建的相機應用程式就

無此問題,幾乎所有 Android 手機都有內建相機應用程式,所以

直接呼叫它即可拍照。

要利用內建相機應用程式拍照,就要設定 Intent 作拍照動作。
檢視原始檔複製到剪貼簿列印關於
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, requestCode);


執行完畢 startActivityForResult() 會自動呼叫 onActivityResult(),

此時可以呼叫 Bundel 的 get("data") 取得所拍的照片,以

ImageView 的方式顯示並自行撰寫存檔程式。

- 手機實用功能開發
1. 手機鈴聲設定


2. 手機音量與震動設定


3. 簡訊與來電處理
手機收到簡訊或有來電時,Android 都會發出 Broadcast,內含

有 Intent 物建,上面的 Bundle 物件儲存著來電或簡訊的相關資

料。

4. 查詢聯絡人資料
Android 提供 Contact API 以方便管理和整合多個帳戶的聯絡人資

料。


 - 多執行緒的應用
Android 應用程式執行當中,Multi Thread 的應用是很廣泛的,

尤其是在智慧手機上,當你在執行程式時背景還在執行電話程

式,甚至同時在聽音樂、衛星導航...等,這些都會用到多執行緒

的開發方式。

1. Java 執行緒的應用模式
  a. 繼承 Thread 類別
  b. 實作 Runnable 介面
  c. Timer 及 TimerTask

2. 透過 Handler 物件實體操控週期性任務


- 藍芽裝置應用
Android 提供藍芽以下的基本功能:

1. 掃描偵測其他的藍芽裝置。
2. 查詢本機藍芽控制器所配對到的藍芽裝置。
3. 建立 RFCOMM 通道。
4. 經由服務搜尋而連接其他設備。
5. 在不同裝置之間傳送資料。
6. 管理多重連接。

下圖為 Android Bluetooth Architecture 架構圖。
http://ithelp.ithome.com.tw/upload/images/20131012/2013101223170

1525967ed70e13_resize.jpg

主要的 API 都放在 android.bluetooth 的套件中。
1. BluetoothAdapter
2. BluetoothDevice
3. BluetoothSocket
4. BluetoothServerSocket
5. BluetoothClass

3. 經由 Looper / Handler 物件實體實現執行緒的運作


本專案會運用到的技巧如下:
http://ithelp.ithome.com.tw/question/10137295

1. 頁籤式版面的配置。

2. 表格式版面的配置。

3. Activity - Broadcast - Activity

4. 資料庫的運用。

5. 組態設定的外部資料儲存。

6. 客製化的對話框設計。

基本的處理架構及流程圖。
http://ithelp.ithome.com.tw/upload/images/20131015/20131015000423525c1607baf22_resize.jpg
操作流程說明:

1. 螢幕上方隨時保留一塊區域可以隨時新增筆計的標題。

2. 分成三大功能標籤,讓使用者能快速切換功能。

3. 程式一開始就進入預設的資料列表頁籤。
  當使用者輸入筆記標題並確認後就會馬上成現在下方的筆記標題列表中,並可以設定重要程度。

4. 點及各筆計標題資料向,會帶出另一編輯框,使用者可針對筆記標題、重要程度、筆記內容來編輯,或是刪除整筆資料。

5. 刪除的筆記項目不會馬上刪除,而是放在垃圾桶頁籤中,可以進行再次確認的處理機制,以免誤刪資料。


接下來要設計規劃資料庫。各欄位說明如下:
http://ithelp.ithome.com.tw/upload/images/20131015/20131015232943525d5f679ac55_resize.jpg

接著就可以開啟 Eclipe 建立新的專案。

接下來要進行主畫面的設計及版面配置。

主要的畫面為最頂端的筆記標題輸入及確認按鈕,而整個下方區域為一個主要頁籤元件。因此,以一個最簡單的 LinearLayout 來進行垂直式配置即可。

頂端部分將確認按鈕以外的空間都保留給筆記標題輸入框使用,所以採用 RelativeLayout 的方式進行水平配置。如下圖所示。
http://ithelp.ithome.com.tw/upload/images/20131016/20131016235716525eb75c10e0f_resize.jpg

有了主畫面之後,接著開始設計其他 3個頁籤的版面配置。
 1. 筆記資料頁籤:todo.xml
 2. 垃圾桶頁籤:done.xml
 3. 組態設定頁籤:config.xml
畫面配置如下圖。
http://ithelp.ithome.com.tw/upload/images/20131017/20131017231623525fff470c8ac_resize.jpg


沒有留言:

張貼留言