2012年12月29日 星期六

2012年12月28日 星期五

Android Apps初學必修課

碁峰資訊,AEL013800,ISBN:9789862767047
01 Android導論
02 建立應用程式開發環境
03 管理應用程式專案
04 應用程式專案架構
05 Activity初探
06 版面設計
07 事件處理
08 常用介面元件
09 對話視窗作業
10 程式偵錯與程式碼管理
11 功能表作業
12 Intent作業
13 檔案存取作業
14 資料庫作業
15 多媒體作業
16 應用Google MAP

2012年12月27日 星期四

2012十大熱門手機遊戲

資料來源: Yahoo奇摩新聞:  2012-十大熱門手機遊戲
1. 英雄越獄 (Prison Break)
2. 憤怒鳥星際大戰  (Angry Birds Stars Wars)
3. 鼠鼠塔 (Hamster Tower)
4. 雷電2013HD (Air Barrage HD)
5. 奇幻射擊 (Fanth Shooting)
6. 鐵道跑酷 (Subway Surfers)
7. 小企鵝大逃亡 (Penguin Run Free)
8. 寶石之星 (Jewels Star)
9. 搗蛋豬 (Bad  Piggies)
10. 山羊沖沖沖! (Go Go Goat)

2012年12月25日 星期二

Android程式設計 - Google Maps API v2應用程式基本架構

1. 開啟Android SDK Manager,確認已安裝Google Play services

2. google-play-services_lib專案匯入到工作區。在專案開發過程google-play-services_lib專案必須維持開啟狀態。

3. 建立Android專案。

4. google-play-services_lib加到Google Maps API v2應用程式專案。

5. 使用debug.keystoreSHA1碼及專案套件名稱(workshop.mapapiv2)到https://code.google.com/apis/console/官網申請Google Maps API v2 key。

6. 開啟專案之AndroidManifest.xml檔,在元素之結束標籤(
)前加入以下宣告。其中apiv2_key需置換為Google Maps API v2 key。
   <meta-data
     android:name="com.google.android.maps.v2.API_KEY"
     android:value="apiv2_key" />

7. AndroidManifest.xml元素之前加入以下宣告,其中your_package_name需置換為自己的App專案套件名稱。
  <permission
     android:name="your_package_name.permission.MAPS_RECEIVE"
     android:protectionLevel="signature" />
  <uses-permission
     android:name="your_package_name.permission.MAPS_RECEIVE" />
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission
     android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name=
     "com.google.android.providers.gsf.permission.READ_GSERVICES"/>

8. AndroidManifest.xml元素之前加入以下宣告。
  <uses-feature
     android:glEsVersion="0x00020000" android:required="true"/>

9. 開啟專案版面配置檔(activity_main.xml),移除預設的<TextView>,加入以下元件。如果Minimum Required SDK是指定為API 12之後版本,class屬性值可使用”com.google.android.gms.maps. MapFragment”。
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="com.google.android.gms.maps.SupportMapFragment"/>

10. 編輯專案程式檔(MainActivity.java)。將MainActivity改為繼承自FragmentActivity注意!如果Minimum Required SDK是指定為API 12之後版本,且版面配置檔class屬性值是使用”com.google.android.gms.maps. MapFragment時,則MainActivity要直接繼承Activity
  public class MainActivity extends FragmentActivity{
    @Override
     protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
     }
  }


2012年12月24日 星期一

Android程式設計 - 使用模擬器測試Google Maps API v2

Google Map API v2運行時需使用Google Play Service,由於模擬器預設並未安裝Google Play Service,因此無法直接使用模擬器測試程式,對開發程式較不方便。
http://saleh360.blogspot.tw/2012/12/android-running-google-maps-api-v2_12.html文章有介紹如何在模擬器中安裝Google Play Service,參考該篇文章,經過測試後重新整理說明如下:

1. 建立一個4.03模擬器 (不含Google API)。
2. 修改System目錄之檔案權限,允許寫入權限。

adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
adb shell chmod 777 /system/app

3. 下載GoogleLoginService.apk、GoogleServicesFramework.apk及Phonesky.apk

GoogleLoginService.apk - www.dropbox.com/s/lfde3juixuy88rg/GoogleLoginService.apk
GoogleServicesFramework.apk - www.dropbox.com/s/9kurwyhbbuecaea/GoogleServicesFramework.apk
Phonesky.apk - www.dropbox.com/s/9x8924gtb52ksn6/Phonesky.apk


4. 安裝GoogleLoginService.apk、GoogleServicesFramework.apk及Phonesky.apk
adb push GoogleLoginService.apk /system/app/
adb push GoogleServicesFramework.apk /system/app/
adb push Phonesky.apk /system/app/
5.開啟瀏覽器,到APKTOP網站下載Google Maps
http://dl.apktops.com/app/201209/Google_Maps_6_12_0.apk
6. 開啟瀏覽器,到APKTOP網站下載Google Play Service
http://dl.papktop.com/2012/12/Google_Play_services_2_0_12.apk
新版本的Google Play Service
7. 安裝下載的Google Maps及Google Play Service

8. 測試Google Maps API v2應用程式




2012年12月21日 星期五

Android程式設計 - 使用Google Map V3 (1) 基本架構

Google自2012.12.3起聲明不支援Map API V1,即不再增加新功能,到2013.3.3前仍接受申請Map API V1 key。Map API V2改用com.google.android.gms.maps.MapFragment,仍需申請Map API V2 key;Google Map API V3則改為Javascript API方式,使用WebView來顯示Google Map,應用程式不需再申請Google Map API key,但同一頁面免費存取次數為25000次/天。

1. 編輯一個HTML檔(例如: googleMap.html),並放置到asset目錄。在html檔中置入一個<div>標籤,大小為全螢幕,用來顯示Google Map。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" 
        src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
  function initialize() {
    var myLatlng = new google.maps.LatLng(23.937591,120.700807);  //地圖中心點
    var myOptions = {
           zoom: 17,
           center: myLatlng,
           mapTypeId: google.maps.MapTypeId.ROADMAP               //道路地圖
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
  <div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>

2. 在版面配置中加入一個WebView元件
<RelativeLayout ...>
  <WebView android:id="@+id/webview"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"/>
</RelativeLayout>

3. 撰寫MainActivity程式,設定WebView啟用JavaScript功能,之後載入googleMap.html。
public class MainActivity extends Activity{
    private static final String MAP_URL = "file:///android_asset/googleMap.html";
    private WebView webView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setupWebView();
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }   
    private void setupWebView(){
        webView = (WebView) findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);       
        webView.loadUrl(MAP_URL);  
    }
}