開發工具下載與安裝

Size: px
Start display at page:

Download "開發工具下載與安裝"

Transcription

1 通知訊息與背景程式 -1 通知訊息 (Notification) Chapter 應用程式 ( 尤其是背景程式 ) 通常會利用通知訊息 (Notification) 來告知使用者重要資訊或警示訊息 為了不干擾使用者目前的操作畫面, 通知訊息利 1 用狀態列來呈現簡易的圖示與訊息文字, 待使用者向下拖曳會更進一步呈現詳細內容, 點擊該內容更可以開啟其他 Activity, 功能非常豐富 如果想要將通知訊息顯示在狀態列 (status bar) 上, 步驟如下 : 取得 NotificationManager 物件 : 必須取得 NotificationManager 物件方能 在狀態列上發送 Notification 呼叫 Activity 的 getsystemservice() 並指 定 NOTIFICATION_SERVICE 即可取得 NotificationManager 物件 NotificationManager notificationmanager = (NotificationManager) getsystemservice(notification_service); 建立 Notification 物件並設定 Notification 標題 圖示與內容 : 呼叫 Notification.Builder 建構式來建立 Notification.Builder 物件 ; 接下來呼 1 Android 5.0 (API level 21) 開始,Notification 在訊息列上的文字 (ticker text) 不再顯示, 只剩下圖示, 參看

2 Android App 開發教戰手冊 叫一連串方法來設定 Notification 標題 圖示與內容, 最後再呼叫 build() 即可建立 Notification 物件 Notification notification = new Notification.Builder(this) // Notification 在狀態列的文字 (Android 5.0 開始將不再顯示, 參看註 1).setTicker("You got a mail") // Notification 在訊息面板的標題.setContentTitle("Hello Android") // Notification 在訊息面板的內容文字.setContentText("Welcome to the Android world!") // Notification 的圖示.setSmallIcon(android.R.drawable.ic_dialog_ ) // 使用者點擊訊息面版後會自動移除狀態列上的 Notification.setAutoCancel(true).build(); build() 在 Android 4.1(API Level 16) 才開始支援, 所以必須在 Gradle Scripts > build.gradle (Module:app) 檔案加上 minsdkversion 16 設定 執行發送動作 : 最後呼叫 NotificationManager 的 notify() 發送訊息 // id 代表 Notification 的 ID notificationmanager.notify(id, notification); 刪除 Notification : 如果想刪除指定的 Notification, 可以呼叫 NotificationManager.cancel() 執行刪除動作 ;cancelall() 則會刪除此應用程式之前發出的所有 Notification notificationmanager.cancel(id); -2

3 通知訊息與背景程式 範例 NotificationDemo 圖 -1 圖 -2 範例說明 : 點擊 Send Notification 按鈕會發送通知訊息, 圖示會顯示在狀態列上, 如圖 -1 向下拖曳狀態列會顯示訊息面板, 指定的通知訊息會呈現在該面板上, 如圖 -2 點擊 Cancel Notification 按鈕會將通知訊息移除 建立步驟 : Notification 要用程式碼建立與發送, 無法使用 layout 建立 ; 所以只在 layout 檔案建立發送與取消 Notification 的按鈕 NotificationDemo > res > layout > main_activity.xml <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" -3

4 Android App 開發教戰手冊 android:orientation="vertical" tools:context=".mainactivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onclick="onsendclick" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onclick="oncancelclick" /> </LinearLayout> 建立 類別, 物件儲存 相關資訊 ;title 為標題,content 為內容 當使用者向下拖曳狀態列上的通知訊息並點擊時會開啟新的 Activity, 物件會存於 Bundle 內傳給 Activity 因為需要儲存在 Bundle 內, 所以要實作 Serializable NotificationDemo > java > .java public class implements Serializable { private String title, content; public (String title, String content) { this.title = title; this.content = content; public String gettitle() { -4

5 通知訊息與背景程式 return title; public void settitle(string title) { this.title = title; public String getcontent() { return content; public void setcontent(string content) { this.content = content; 建立首頁 Activity, 並在其內建立 發送通知訊息 點擊通知訊息後會開啟新的一頁呈現訊息詳細內容 NotificationDemo > java > MainActivity.java public class MainActivity extends AppCompatActivity { NOTIFICATION_ID 是自訂常數, 代表 Notification 的 ID private final static int NOTIFICATION_ID = 0; private NotificationManager notificationmanager; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main_activity); 呼叫 getsystemservice() 並指定 NOTIFICATION_SERVICE, 可取得 NotificationManager 物件, 為了之後發送 Notification notificationmanager = (NotificationManager) getsystemservice(notification_service); 點擊 Send Notification 按鈕會建立 Notification 並發送 public void onsendclick(view view) { String title = "Hello Android"; String content = "Welcome to the Android world!"; -5

6 Android App 開發教戰手冊 = new (title, content); Intent intent = new Intent(this, Activity.class); Bundle bundle = new Bundle(); bundle.putserializable(" ", ); intent.putextras(bundle); 建立 Notification 物件需要 PendingIntent, 呼叫 getactivity() 就是要取得 PendingIntent PendingIntent 代表不會立即開啟 Intent 所指定的畫面, 而是等待符合一定條件後才開啟 PendingIntent pendingintent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 建立 Notification 物件需要呼叫 Notification.Builder 建構式, 之後呼叫一連串設定的方法 : setticker() 設定狀態列的訊息文字,setContentTitle() 設定訊息面板的標題, setcontenttext() 設定訊息面板的內容文字,setSmallIcon() 設定圖示,setAutoCancel() 設定點擊訊息面版後會自動移除 Notification,setContentIntent() 設定使用者點擊訊息面版上的訊息會開啟指定 Activity 的畫面 Notification notification = new Notification.Builder(this).setTicker("You got a mail").setcontenttitle( .gettitle()).setcontenttext( .getcontent()).setsmallicon(android.r.drawable.ic_dialog_ ).setautocancel(true).setcontentintent(pendingintent).build(); 呼叫 notify() 指定訊息 ID 與訊息內容並發出 Notification notificationmanager.notify(notification_id, notification); 點擊 Cancel Notification 按鈕刪除指定 ID 的 Notification public void oncancelclick(view view) { notificationmanager.cancel(notification_id); -6

7 通知訊息與背景程式 建立 Activity 作第 2 頁 在此接收前一頁傳來的 物件, 並將資訊顯示在 UI 元件上 NotificationDemo > java > Activity.java public class Activity extends AppCompatActivity { private TextView tvtitle, tvcontent; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout. _activity); findviews(); show (); private void findviews() { tvtitle = (TextView) findviewbyid(r.id.tvtitle); tvcontent = (TextView) findviewbyid(r.id.tvcontent); 取得前頁傳來的 Intent 物件, 並取出其內的 物件後將資訊顯示在 TextView 上 private void show () { Bundle bundle = getintent().getextras(); if (bundle == null) { return; = ( ) bundle.getserializable(" "); if ( != null) { tvtitle.settext( .gettitle()); tvcontent.settext( .getcontent()); -

8 Android App 開發教戰手冊 -2 廣播 (Broadcast) -2-1 攔截廣播 有重大事件發生時 Android 系統會發出廣播通知所有應用程式, 例如 Android 裝置快沒電了 收到來訊來電 開機完成等 如果開發者想要在發生特定重大事件時作立即回應 ( 例如手機快沒電時自動將使用者輸入的資料存檔 ), 就必須註冊廣播接收器 (BroadcastReceiver) 來攔截系統發出的廣播, 並且在廣播接收器內撰寫好對應處置的程式, 步驟如下 : 自訂類別繼承 BroadcastReceiver, 並改寫 onreceive() public class MyReceiver extends BroadcastReceiver { public void onreceive(context context, Intent intent){ // 改寫內容 在 manifest 檔案設定欲攔截帶有何種 action 訊息的 Broadcast, 並註冊指定的 BroadcastReceiver, 例如步驟 1 的 MyReceiver 當系統發出的廣播被攔截時, 會自動呼叫被改寫的 onreceive(), 以作對應處置 <receiver android:name="myreceiver"> <intent-filter> <action android:name=" 欲攔截的 action" /> </intent-filter> </receiver> -8

9 通知訊息與背景程式 範例 BroadcastReceiverDemo 圖 -3 圖 -4 範例說明 : 註冊好的接收器一旦攔截到手機有來訊內容, 如圖 -3 如果手機有來電就會顯示手機狀態與來電號碼, 如圖 -4 建立步驟 : 要攔截手機的來訊與來電, 必須在 manifest 檔案內加上 android. permission.receive_sms 與 android.permission.read_phone_state, API 23(Android 6.0) 開始都屬於 dangerous permissions, 必須透過程式請求使用者同意, 詳細說明請參看附錄 A 除此之外, 還必須在 manifest 檔案內註冊來訊與手機電話狀態改變的廣播接收器 2, 就會顯示發訊者 時間與簡訊 2 可以點擊模擬器工具列上的 按鈕開啟其他功能頁面, 可以向模擬器發送簡訊或撥打電話, 參看前面章節 Android 模擬器功能說明 的 模擬來電與來訊 -9

10 Android App 開發教戰手冊 BroadcastReceiverDemo > manifests > AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="idv.ron.broadcastreceiverdemo"> <uses-permission android:name="android.permission.receive_sms" /> <uses-permission android:name="android.permission.read_phone_state" /> <application android:allowbackup="true" <activity android:name=".mainactivity" <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> 指定攔截來訊的接收器為 SmsReceiver <receiver android:name=".smsreceiver"> 加上 android.permission.broadcast_sms 代表 SmsReceiver 只會對當初有註冊 3 android.permission.broadcast_sms 的廣播發送者所發送的廣播加以攔截 android:permission="android.permission.broadcast_sms"> 以 <intent-filter> 設定此 Receiver 要攔截的是來訊的廣播 <intent-filter> <action android:name="android.provider.telephony.sms_received" /> </intent-filter> </receiver> 要攔截來電必須攔截手機狀態, 當手機狀態改變時, 接收器 PhoneReceiver 會攔截到 <receiver android:name=".phonereceiver"> <intent-filter> 3 android:permission 的設定其實可以不加, 不過會跳警示訊息 加上此設定則 SmsReceiver 不僅會攔截來訊的廣播, 更進一步會檢查廣播發送者有沒有取得 android.permission.broadcast_sms, 這樣可以避免惡意程式假裝發送簡訊而引誘 SmsReceiver 做回應 -10

11 通知訊息與背景程式 <action android:name="android.intent.action.phone_state" /> </intent-filter> </receiver> </application> </manifest> 建立 SmsReceiver 繼承 BroadcastReceiver 並改寫 onreceive(), 攔截到手機來訊時 onreceive() 會被呼叫, 顯示來訊者 時間與訊息內容 BroadcastReceiverDemo > java > SmsReceiver.java public class SmsReceiver extends BroadcastReceiver { 來訊廣播的 Intent 存有來訊相關資訊, 可透過 Intent 內的 Bundle 來取得 public void onreceive(context context, Intent intent) { String messages = ""; String sender = ""; Date date = null; Bundle bundle = intent.getextras(); 4 取得 bundle 物件內儲存的 PDU 簡訊資料, 如果簡訊過長, 可能會拆成多個簡訊內容 ( 但仍屬於同一個簡訊 ), 所以宣告陣列來儲存 Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus!= null) { SmsMessage[] smsmessages = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { 呼叫 SmsMessage.createFromPdu() 將 PDU 資料轉成 SmsMessage 物件方便取得簡訊內容 API 23 開始以 createfrompdu(byte[] pdu, String format) 取代 createfrompdu (byte[] pdu), 但為了相容性所以先檢查系統版本, 再決定要呼叫新版還是舊版的方法 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { smsmessages[i] = SmsMessage.createFromPdu((byte[]) pdus[i], "3gpp"); else { smsmessages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 取得簡訊內容 4 參看 -11

12 Android App 開發教戰手冊 取得發訊者電話號碼 取得發訊時間 messages += smsmessages[i].getdisplaymessagebody(); sender = smsmessages[0].getdisplayoriginatingaddress(); date = new Date(smsMessages[0].getTimestampMillis()); 建立 Sms 物件以儲存簡訊相關資訊後送到下一頁顯示 Sms sms = new Sms(sender, messages, date); Intent i = new Intent(context, MainActivity.class); Bundle b = new Bundle(); b.putstring("text", sms.tostring()); i.putextras(b); BroadcastReceiver 屬於背景程式, 必須加上 FLAG_ACTIVITY_NEW_TASK 方能開啟前景程式 Activity i.addflags(intent.flag_activity_new_task); context.startactivity(i); 建立 PhoneReceiver 繼承 BroadcastReceiver 並改寫 onreceive(), 手機狀 態改變時 onreceive() 會被呼叫, 更進一步判斷是否為來電狀態 BroadcastReceiverDemo > java > PhoneReceiver.java public class PhoneReceiver extends BroadcastReceiver { public void onreceive(context context, Intent intent) { Bundle bundle = intent.getextras(); 取得手機狀態 String phonestate = bundle.getstring(telephonymanager.extra_state); String incomingnumber; 如果手機狀態屬於來電中, 就取得來電號碼 if (phonestate!= null && phonestate.equals(telephonymanager.extra_state_ringing)) { incomingnumber = bundle.getstring(telephonymanager.extra_incoming_number); String text = "Phone state: " + phonestate + "\nincoming number: " + incomingnumber; -12

13 通知訊息與背景程式 將來電相關資訊儲存在 Bundle 物件內, 傳送到下一頁 Intent i = new Intent(context, MainActivity.class); Bundle b = new Bundle(); b.putstring("text", text); i.putextras(b); BroadcastReceiver 屬於背景程式, 必須加上 FLAG_ACTIVITY_NEW_TASK 方能開啟前景程式 Activity i.addflags(intent.flag_activity_new_task); context.startactivity(i); 建立 Activity 顯示來訊接收器或手機狀態接收器轉來的相關訊息 BroadcastReceiverDemo > java > MainActivity.java public class MainActivity extends AppCompatActivity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main_activity); TextView tvsms = (TextView) findviewbyid(r.id.tvtext); Bundle bundle = getintent().getextras(); if (bundle == null) { return; String text = bundle.getstring("text"); if (text!= null && text.trim().length() > 0) { tvsms.settext(text); private static final int REQ_PERMISSIONS = 0; protected void onstart() { super.onstart(); askpermissions(); -13

14 Android App 開發教戰手冊 API 23 的 Permission 說明請參看附錄 A private void askpermissions() { String[] permissions = { Manifest.permission.RECEIVE_SMS, Manifest.permission.READ_PHONE_STATE ; Set<String> permissionsrequest = new HashSet<>(); for (String permission : permissions) { int result = ContextCompat.checkSelfPermission(this, permission); if (result!= PackageManager.PERMISSION_GRANTED) { permissionsrequest.add(permission); if (!permissionsrequest.isempty()) { ActivityCompat.requestPermissions(this, permissionsrequest.toarray(new String[permissionsRequest.size()]), REQ_PERMISSIONS); public void onrequestpermissionsresult(int String[] int[] grantresults) { switch (requestcode) { case REQ_PERMISSIONS: // 將 user 不同意的 permission 以 Toast 列出 String text = ""; for (int i = 0; i < grantresults.length; i++) { if (grantresults[i]!= PackageManager.PERMISSION_GRANTED) { text += permissions[i] + "\n"; if (!text.isempty()) { text += getstring(r.string.text_notgranted); Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); break; -14

15 通知訊息與背景程式 -2-2 自行發送與攔截廣播 Android 系統會發出廣播, 個別應用程式也可以依照需求自行發出廣播, 不過 Android 系統發送的屬於全域型, 也就是所有手機上安裝的應用程式都會接收到 ; 而應用程式一般只針對自己內部發送, 所以會使用區域型的 LocalBroadcastManager 類別來發送 5 區域型廣播有下列 3 個好處 : 1. 不會將廣播資料傳送到其他應用程式, 所以不用擔心資料外洩 2. 其他應用程式發送的區域廣播也不會到你的應用程式, 所以不用擔心別人會利用廣播來鑽漏洞 3. 傳送區域型比全域型廣播更有效率 發送廣播後可以再攔截該廣播做對應處理 除了可以在 manifest 檔案設定欲攔截的廣播與註冊廣播接收器, 也可以直接在程式碼內完成這些工作 說明如下 : 1. 自訂類別繼承 BroadcastReceiver, 並改寫 onreceive() 2. 呼叫 LocalBroadcastManager.registerReceiver() 註冊廣播接收器 IntentFilter filter = new IntentFilter(action); BroadcastReceiver receiver = new MyReceiver(); localbroadcastmanager.registerreceiver(receiver, filter); 5 如果要發送全域型 Broadcast, 呼叫 Context.sendBroadcast() -15

16 Android App 開發教戰手冊 3. 準備好 Intent 物件行發出廣播 6 後, 呼叫 LocalBroadcastManager.sendBroadcast(), 自 localbroadcastmanager.sendbroadcast(intent); 4. 系統自動呼叫已註冊廣播接收器的 onreceive() 5. 呼叫 LocalBroadcastManager.unregisterReceiver() 解除廣播接收器的註冊 localbroadcastmanager.unregisterreceiver(receiver); 範例 BroadcastSendDemo 圖 -5 圖 -6 6 只要有 Intent 物件, 就可以夾帶 Bundle 資料, 讓接收端可以取得發送端傳來的資料 -16

17 通知訊息與背景程式 範例說明 : 點擊 Send Broadcast 按鈕會發出廣播, 對應的廣播接收器會接收到並以 Toast 訊息方塊顯示 Broadcast received, 如圖 -5 點擊 Unregister BroadcastReceiver 按鈕, 會以 Toast 訊息方塊顯示 BroadcastReceiver unregistered 再點擊 Send Broadcast 按鈕則不再顯示 Broadcast received 如果再點擊 Unregister BroadcastReceiver 按鈕, 則會以 Toast 訊息方塊顯示 No BroadcastReceiver any more!!, 如圖 -6 建立步驟 : layout 檔案內建立 Send Broadcast 與 Unregister BroadcastReceiver 二個按鈕, 並以 onclick 屬性指定點擊後要呼叫的方法 BroadcastSendDemo > res > layout > main_activity.xml <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:paddingbottom="@dimen/activity_vertical_margin" tools:context=".mainactivity"> <Button android:id="@+id/btsend" android:layout_width="match_parent" android:layout_height="wrap_content" android:onclick="onsendclick" android:text="@string/text_btsend" /> <Button android:id="@+id/btunregister" android:layout_width="match_parent" android:layout_height="wrap_content" android:onclick="onunregisterclick" -1

18 Android App 開發教戰手冊 /> </LinearLayout> 建立 Activity, 準備 Send Broadcast 按鈕以發出廣播, 實作並註冊好的 BroadcastReceiver.onReceive() 會自動被系統呼叫 準備好 Unregister BroadcastReceiver 按鈕以解除 BroadcastReceiver 的註冊, 即便再發出廣播,BroadcastReceiver.onReceive() 也不會被呼叫 BroadcastSendDemo > java > MainActivity.java public class MainActivity extends AppCompatActivity { 自訂 BROADCAST_ACTION 字串常數, 可視為 BroadCast 的 ID private static final String BROADCAST_ACTION = "idv.ron.broadcastsenddemo.test_broadcast"; private MyReceiver myreceiver; private LocalBroadcastManager localbroadcastmanager; MyReceiver 繼承 BroadcastReceiver 並改寫 onreceive() 攔截到對應的廣播時, 系統會自動呼叫 onreceive() private class MyReceiver extends BroadcastReceiver { public void onreceive(context context, Intent intent) { showtoast("broadcast received"); protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main_activity); 取得 LocalBroadcastManager 物件 localbroadcastmanager = LocalBroadcastManager.getInstance(this); registermyreceiver(); 自訂 registermyreceiver() 來註冊廣播接收器 private void registermyreceiver() { 建立 IntentFilter 物件, 並指定攔截帶有 BROADCAST_ACTION 訊息的廣播 IntentFilter filter = new IntentFilter(BROADCAST_ACTION); -18

19 通知訊息與背景程式 myreceiver = new MyReceiver(); 註冊指定的廣播接收器 MyReceiver 與欲攔截的廣播 localbroadcastmanager.registerreceiver(myreceiver, filter); showtoast("broadcast registered"); private void showtoast(string text) { Toast.makeText( MainActivity.this, text, Toast.LENGTH_SHORT).show(); 自訂 registermyreceiver() 來發送廣播 public void onsendclick(view view) { 發出帶有 BROADCAST_ACTION 訊息的廣播 Intent intent = new Intent(BROADCAST_ACTION); localbroadcastmanager.sendbroadcast(intent); showtoast("broadcast sent"); 自訂 onunregisterclick() 來解除廣播接收器的註冊 public void onunregisterclick(view view) { 解除對廣播接收器的註冊 如果之後再發出對應的廣播, 便無法接收 localbroadcastmanager.unregisterreceiver(myreceiver); showtoast("broadcastreceiver unregistered"); protected void ondestroy() { super.ondestroy(); localbroadcastmanager.unregisterreceiver(myreceiver); -19

20 Android App 開發教戰手冊 -3 Service 生命週期 Service( 服務 ) 雖然與 Activity 都屬於 MVC 架構中的 Controller, 也都是使 用主執行序 (main thread) 在運作, 但最大的不同點就是 Activity 有 UI 畫面供 使用者操作, 但 Service 卻沒有 UI 畫面, 所以使用者無法直接與 Service 互動, 而只能透過 Activity 的 UI 間接與 Service 互動 ( 例如開啟或關閉 Service) 如果想要在背地裡持續執行程式 ( 例如播放音樂 掃描病毒 下載檔案等 ),Service 是最好的選擇 Service 可說是 Android 應用程式背後的無名英雄 雖然 Service 在背地裡執行著, 但是裝置一旦進入到休眠狀態,Service 也會停擺 如果希望 Service 執行時, 裝置不要進入休眠狀態, 必須使用 powermanager 讓 CPU 繼續運作,manifest 檔案也必須加上 <uses-permission android:name="android.permission.wake_lock" /> 想在應用程式使用 Service 功能, 就如同使用 Activity 一樣, 必須在專案的 manifest 檔案內宣告, 使用的標籤為 <service>, 說明如下 : <service android:enabled="true" android:name=".myservice" /> android:enabled: 可否啟動此 Service, 也就是系統可否產生 Service 物件實體 android:name:service 類別名稱 可透過下列 2 種方式開啟 Service: 1. 直接呼叫 Context.startService() 開啟指定的 Service 2. 呼叫 Context.bindService() 連結 Service, 若 Service 尚未開啟, 會自動開啟 如果 Service 要提供的服務需要密集地使用 CPU( 例如播放 MP3), 或是可能需要長時間等待 ( 例如擷取網路資料 ), 就需要開啟新的執行序去執行這些任務, 以減輕主執行序的負擔與避免主執行序長時間耗費在這而無法做其他更重要的事情或只有主執行序才能做的事情 ( 例如呈現 UI 畫面只有主執行序才能做, 所以主執行序又被稱作 UI 執行序 ) -20

21 通知訊息與背景程式 -3-1 呼叫 startservice() 開啟 Service 從呼叫 Context.startService() 開啟指定的 Service 到該 Service 結束會歷經下 列過程, 如圖 -: 1. 如果 Activity 想要啟動 Service, 可以直接呼叫 Context.startService() 以明確開啟 Service 2. 系統開啟 Service 後會自動呼叫 Service.onCreate() 3. 接下來系統會呼叫 Service.onStartCommand() 4. Activity 呼叫 Context.stopService() 8, 會終止該 Service; 如果想要 Service 自我終止, 可以呼叫 stopself() 上述 2 種終止 Service 方式都會導致系統呼叫 Service.onDestroy() 並關閉 Service 圖 - 建議在範例 ServiceDemo 生命週期的方法加入中斷點後使用 debug 模式 來觀察 Service 生命週期 8 無論呼叫多少次 startservice() 來開啟 Service, 只要呼叫一次 stopservice() 即可停止 Service, 參看 -21

22 Android App 開發教戰手冊 範例 ServiceDemo 圖 -8 圖 -9 範例說明 : 點擊 Start Service 按鈕, 如圖 -8, 會開啟 Service, 並 Toast 顯示 Service starting; 此時隱藏 Start Service 按鈕, 改顯示 Stop Service 按鈕 點擊 Stop Service 按鈕, 如圖 -9, 會停止 Service, 並使用 Notification 顯示 Service Stopped 建立步驟 : Service 執行時不希望裝置進入休眠狀態, 必須加上權限設定 <uses-permission android:name="android.permission.wake_lock" /> Service 也跟 Activity 一樣必須在 manifest 檔案宣告 ServiceDemo > manifests > AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="idv.ron.servicedemo"> -22

23 通知訊息與背景程式 <uses-permission android:name="android.permission.wake_lock" /> <application android:allowbackup="true" <activity android:name=".mainactivity" android:launchmode="singletop"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <service android:name=".mainservice" android:enabled="true" /> </application> </manifest> 在 layout 檔案中增加 Start Service 與 Stop Service 這 2 個按鈕並指定點擊後會呼叫的方法 ServiceDemo > res> layout > main_activity.xml <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:paddingbottom="@dimen/activity_vertical_margin" tools:context=".mainactivity"> <Button -23

24 Android App 開發教戰手冊 android:onclick="onstartclick" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:onclick="onstopclick" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 建立 Activity, 點擊 Start Service 按鈕會啟動指定的 Service; 點擊 Stop Service 按鈕會停止指定的 Service ServiceDemo > java > MainActivity.java public class MainActivity extends AppCompatActivity { private Button btstart, btstop; private MyReceiver myreceiver; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main_activity); findviews(); 一開始 Service 尚未啟動, 呼叫 resetlayout() 傳入 false, 顯示 Start Service 按鈕 resetlayout(false); 註冊廣播接收器 registermyreceiver(); private void findviews() { btstart = (Button) findviewbyid(r.id.btstart); btstop = (Button) findviewbyid(r.id.btstop); -24

25 通知訊息與背景程式 private class MyReceiver extends BroadcastReceiver { public void onreceive(context context, Intent intent) { showtoast("service starting"); private void registermyreceiver() { 攔截指定的廣播 IntentFilter filter = new IntentFilter(MainService.ACTION_SERVICE_START); myreceiver = new MyReceiver(); 註冊廣播接收器, 當欲攔截的廣播發送時, 會呼叫對應的 onreceive() LocalBroadcastManager.getInstance(this).registerReceiver(myReceiver, filter); 點擊 Start Service 按鈕開啟 Service, 呼叫 resetlayout(true) 改顯示 Stop Service 按鈕 public void onstartclick(view view) { Intent intent = new Intent(this, MainService.class); startservice(intent); resetlayout(true); 點擊 Stop Service 按鈕停止 Service, 呼叫 resetlayout(false) 改顯示 Start Service 按鈕 public void onstopclick(view view) { Intent intent = new Intent(this, MainService.class); stopservice(intent); resetlayout(false); 檢查 Service 是否啟動 ; 如果已啟動, 顯示 Stop Service 按鈕, 讓使用者可以停止 Service; 否則顯示 Start Service 按鈕, 讓使用者可以啟動 Service private void resetlayout(boolean isactive) { if (isactive) { btstart.setvisibility(view.gone); btstop.setvisibility(view.visible); else { btstart.setvisibility(view.visible); btstop.setvisibility(view.gone); -25

26 Android App 開發教戰手冊 public void ondestroy() { super.ondestroy(); LocalBroadcastManager.getInstance(this).unregisterReceiver(myReceiver); private void showtoast(string text) { Toast.makeText( MainActivity.this, text, Toast.LENGTH_SHORT).show(); 建立 Service 為了讓 Service 持續執行而不進入休眠狀態, 必須使用 powermanager 類別的功能讓 CPU 繼續運作 ServiceDemo > java > MainService.java public class MainService extends Service { private final static int NOTIFICATION_ID = 0; public final static String ACTION_SERVICE_START = "idv.ron.servicedemo.service.start"; private PowerManager.WakeLock wakelock; NotificationManager notificationmanager; public void oncreate() { super.oncreate(); 取得 PowerManager 物件後呼叫 newwakelock() 取得 WakeLock 物件, 再呼叫 acquire() 代表希望裝置能夠持續運作而不要進入休眠狀態 PowerManager powermanager = (PowerManager) getsystemservice(context.power_service); wakelock = powermanager.newwakelock(powermanager.partial_wake_lock, "MyWakeLock"); wakelock.acquire(); -26

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

書面

書面 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 5.4 互動功能畫面 程式碼請參考附件-程式三 在進入互動頁面時 會執行setAllText()依寵物狀態數值來 設定狀態文字與頭像 並且依心情決定是否要不要播放音效 觸摸的區域 由於是自己寫的 view 所以並未透過xml來設置 而是透過Layut.addview()來動態新增

More information

Android Service

Android Service Android Service- 播放音樂 建國科技大學資管系 饒瑞佶 2013/7 V1 Android Service Service 是跟 Activity 並行 一個音樂播放程式若沒使用 Service, 即使按 home 鍵畫面離開之後, 音樂還是照播 如果再執行一次程式, 新撥放的音樂會跟先前撥放的一起撥, 最後程式就會出錯 執行中的程式完全看不到! 但是, 寫成 Service 就不同了

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

Dynamic Layout in Android

Dynamic Layout in Android Dynamic Layout in Android 建國科技大學資管系 饒瑞佶 2013/5 V1 Layout 多半都透過 res/layout/xml 格式設定來達成 Android 是 OOP, 所以可以動態產生 Layout 重點是 Layout 的階層關係 (Hierarchy) 需要處理對應事件 最後一樣用 setcontentview 加入 Layout 一 加入現有 Layout 中

More information

RecyclerView and CardVew

RecyclerView and CardVew RecyclerView and CardView 建國科技大學資管系饒瑞佶 2017/10 V1 CardView CardView A CardView is a ViewGroup. Like any other ViewGroup, it can be added to youractivity or Fragment using a layout XML file. To create an

More information

Microsoft Word - 第1章 Android基本概念.docx

Microsoft Word - 第1章 Android基本概念.docx Android 系 统 下 Java 编 程 详 解 作 者 : 华 清 远 见 第 1 章 Android 基 本 概 念 本 章 简 介 本 章 主 要 介 绍 Android 基 本 概 念 方 面 的 内 容, 包 括 Android 平 台 特 性 Android 系 统 架 构 Android 开 发 框 架 和 Android 开 发 环 境 搭 建 1.1 Android 简 介 Android

More information

Android + NFC

Android + NFC Android + NFC 建國科技大學資管系饒瑞佶 2017/3 v1 讀取 Tag UUID Android 2.3.3 (API Level 10) 才有支援完整的 NFC 功能 只要 NFC 相容都讀的到 (NFC 或 Mifare) 建立新專案修改 AndroidManifest.xml 加入 , 如果有 NFC Tag 進入感測範圍, 本 App 也會變成可處理的

More information

Android Fragment

Android Fragment Android Fragment 建國科技大學資管系饒瑞佶 2017/10 V1 Android 3.0 後才支援 Fragment 解決部分 App 適應螢幕大小的問題 它類似於 Activity, 可以像 Activity 可以擁有自己的版面設計, 也和 Activity 一樣有自己的生命週期 ( 具備 oncreate() oncreateview() 與 onpause() 方法 ) LifeCycle

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Outlines for Today Future Planning Review System Architecture Dev. Tools & Making the First App Project Structure & File Details Application

More information

0511-Android程式之GPS應用_專題週記4

0511-Android程式之GPS應用_專題週記4 逢甲大學通訊工程學系專題研究 Android 程式之 GPS 應用 專題週記 0511 學生姓名 陳彥儒 D0035131 廖元譽 D0077791 指導老師 楊豐瑞老師繳交日期 2014.05.11 1 匯入 GoogleMap 1.1 取得授權步驟 目前進度 取得 Google 授權鑰匙 實作程式尚未成功 1.1.1 建立個人的 keystore 1.1.2 由個人的 keystore 查詢 SHA1

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Android Android Android SDK iv

Android Android Android SDK iv Android Market Google Android SDK Apple Google Microsoft b2c b 2010 Internet Android how why iii Android 240... Android Android SDK iv Android Market Google Android SDK Visual C++ Java N-tier J2EE Unix/Linux

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class 踩地雷遊戲 高慧君南港高中 開啟專案 MineSweep 任務一 : 產生 30X20 個磚塊編輯 Table 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.util.arraylist; Write a description of class MyWorld

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之 臺 北 市 大 安 高 級 工 業 職 業 學 校 資 訊 科 一 百 零 一 學 年 度 專 題 製 作 報 告 ------ 以 Android 製 作 ------ ----- 連 線 塔 防 遊 戲 ------ Tower defense game using Internet technology 班 級 : 資 訊 三 甲 組 別 : A9 組 組 員 : 葉 冠 麟 (9906129)

More information

Microsoft Word - AEL CH05.doc

Microsoft Word - AEL CH05.doc 5-2 AutoCompleteTextView AutoCompleteTextView 非常類似 EditText, 屬於文字輸入方塊 ; 不過 AutoCompleteTextView 會在使用者輸入幾個字時就會顯示提示文字, 方便使用者選取而無需輸入所有文字, 是一種體貼使用者輸入的設計 AutoCompleteTextView 的提示列表與 Spinner 的選項列表建立方式相同, 需要建立字串陣列來儲存欲提示的文字

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc) 作者 Amber 版本 1.0.0 日期 2012/04/25 頁數 1/7 如何使用 LED 燈顯示狀態? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 N/A N/A XP-8000-Atom 系列 WES2009 所有版本 N/A: Not applicable to this platform and OS. 注意! 欲變更系統的任何設定之前, 請先關閉

More information

01_Service

01_Service 移动平台应用软件开发 Service 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年 什么是 Service 与 Activity 一样, 同属 Android 基本组件 后台运行, 不与用户交互, 没有可视化界面 最常见的 Service 如 : 在后台播放歌曲 后台执行文件的下载 同样需在 AndroidManifest.xml

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并

第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并 第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并接收广播中的消息就需要使用 BroadcastReceiver( 广播接收者 ), 广播接收者是 Android

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

建模与图形思考

建模与图形思考 C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性

More information

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android= 第 6 章广播接收者 应用案例 案例 6-1 CallRecord( 通话记录 ) 一 案例描述 1 考核知识点 030006001: 广播接收者简介 030006002: 广播接收者的创建 2 练习目标 广播的静态注册和使用 使用广播处理处理事件 3 需求分析手机最重要的功能就是通话功能, 同样储存通话记录也是必不可少的 该案例使用广 播接收者自己实现通话记录的功能 包括呼出电话 已接来电 未接来电以及通话产生的

More information

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc Author WeiKai Version 1.0.0 Date 2013/4/14 Page 1/11 我如何在 XPAC 上建立一個 COM port 通訊程式 Applies to: Platform OS version XPAC utility version XPAC series All versions (WinCE6) All versions XPAC SDK 提供 XPAC 結合

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 : EditText 实现城市搜索 1801210778 邹宇航 摘要 : 使用 EditText 实现搜索城市的功能, 以此为依据更新 ListView 1. 效果图 : 2. 主要步骤 (1) 在 select-city.xml 布局文件中中添加 EditText 控件用作搜索框, 然后添加 ListView 控件用来显示城市名字内容 代码如下 : 预览图 : (2) 在 SelectCity.java

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

The golden pins of the PCI card can be oxidized after months or years

The golden pins of the PCI card can be oxidized after months or years Q. 如何在 LabWindows/CVI 編譯 DAQ Card 程式? A: 請參考至下列步驟 : 步驟 1: 安裝驅動程式 1. 安裝 UniDAQ 驅動程式 UniDAQ 驅動程式下載位置 : CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

幻灯片 1

幻灯片 1 Delivering accurate maps to Chinese Android users 为中国安卓用户提供准确的地图服务 Work at Mapbox includes: Android apps, demos, starter kits, documentation, support, syncing Android team with other departments, etc.

More information

建立Android新專案

建立Android新專案 Android 智 慧 型 手 機 程 式 設 計 Android WebService 建 國 科 技 大 學 資 管 系 饒 瑞 佶 2012/4 V1 2012/8 V2 2013/5 V3 2014/10 v4 提 醒 這 節 的 內 容 針 對 的 是 MS 的 Web Service 或 是 使 用 SOAP(Simple Object Access Protocol) 標 準 建 立

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

46 2011 11 467 數位遊戲式學習系統 7 2011 11 467 47 3 DBGameSys 48 2011 11 467 正規化資料模組 如何配置並儲存電子化資料 以 便減少資料被重覆儲存的程序 DBGameSys的主要功能模組包 學習者 審核評分模組 含 正規化資料模組 審核評分 模組 高分列表模組3大區塊 系統資料庫 在正規化資料模組的執行 高分列表模組 過程中 先要求學習者瀏覽遊戲

More information

Android + WebService

Android + WebService Android + Web Service 建國科技大學資管系饒瑞佶 2017/3 V1 呼叫 OpenData Web Service http://data.taipei/opendata/datalist/apiaccess?scope=resourceaquire& rid=e7c46724-3517-4ce5-844f-5a4404897b7d http://data.taipei/opendata/datalist/apiaccess?scope=resourceaquir

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue html vue html vue Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code h

ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue html vue html vue Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code h ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue010101.html vue010104.html vue0101 01 04 Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code https://code.visualstudio.com/ Chrome XAMP Visual Studio

More information

Microsoft PowerPoint - VB14.ppt

Microsoft PowerPoint - VB14.ppt VB 列表盒 LISTBOX 應用 資科系 林偉川 執行畫面 1 2 1 重要屬性 LISTBOX 物件 (VB6) 新增至 LISTBOX 物件中 ADDITEM 自 LISTBOX 物件中刪除選取物件 REMOVEITEM 自 LISTBOX 物件中取出選取物件 ListIndex 顯示 LISTBOX 物件中紀錄個數 Listcount 3 LISTBOX 物件 (VB.NET) 重要屬性 新增至

More information

建立Android新專案

建立Android新專案 經濟部工業局 Android 智慧型手機程式設計實務應用班 Android WebService 建國科技大學資管系 饒瑞佶 2012/4 WebService 需要 ksoap2-android-assembly-2.5.2-jar-withdependencies.jar 或 ksoap2-android-assembly-2.5.2-jar-withdependencies_timeout1.jar

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

Microsoft PowerPoint - App與微控器整合.pptx

Microsoft PowerPoint - App與微控器整合.pptx 1 2 Outline APP 與微控器整合 2017 中山大學電機實驗營 App 開發環境 -Android Studio 介紹 App 開發 實驗營 App 流程 3 4 Android Studio 介紹 Android Studio 是一個為 Android 平台開發程式的整合式開發環境, 可供開發者免費使用, 並在 Windows OS X Linux 平台上均可執行 專案結構 一個專案下有

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

More information

Microsoft Word - A201103-528_1299547322.doc

Microsoft Word - A201103-528_1299547322.doc 5 10 15 20 25 30 基 于 Android 平 台 的 人 机 交 互 的 研 究 与 实 现 郁 亚 男 ( 北 京 邮 电 大 学 软 件 学 院, 北 京 100876) 摘 要 : 随 着 计 算 的 发 展, 计 算 变 得 越 来 越 自 由, 在 资 源 使 用 方 面 也 越 来 越 灵 活 移 动 终 端 由 于 无 线 通 信 网 络 传 输 速 率 的 提 高,

More information

CHAPTER VC#

CHAPTER VC# 1. 2. 3. 4. CHAPTER 2-1 2-2 2-3 2-4 VC# 2-5 2-6 2-7 2-8 Visual C# 2008 2-1 Visual C# 0~100 (-32768~+32767) 2 4 VC# (Overflow) 2-1 2-2 2-1 2-1.1 2-1 1 10 10!(1 10) 2-3 Visual C# 2008 10! 32767 short( )

More information

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

Android 编程基础 Android 开发教程 & 笔记 1

Android 编程基础 Android 开发教程 & 笔记 1 Android 开发教程 & 笔记 1 多式样 ProgressBar 撰写 : 地狱怒兽 联系 :zyf19870302@126.com 普通圆形 ProgressBar 该类型进度条也就是一个表示运转的过程, 例如发送短信, 连接网络等等, 表示一个过程正 在执行中 一般只要在 XML 布局中定义就可以了

More information

2016 勒索軟體白皮書

2016 勒索軟體白皮書 Botnet Botnet 1 1 2 2 5 5 6 9 10 11 11 11 12 12 12 12 12 12 13 14 2016 1989 AIDS AIDS C 189 2005 2006 TROJ_CRYPZIP.A 2011 TROJ_RANSOM.QOWA 12 2012 REVETON 2013 Cryptolocker Cryptolocker AES RSA Cryptolocker

More information

iziggi

iziggi iziggi 1 1 iziggi-hd 2 iziggi-hd 4 IPEVO iziggi-hd 6 iziggi-hd 8 iziggi-hd 9 Whiteboard App USB 10 iziggi-hd 11 iziggi-hd Live View WiFi 11 12 LED 12 iziggi-hd 13 Apple TV AirPlay 13 14 15 iziggi-hd *

More information

Microsoft Word - AEL CH10

Microsoft Word - AEL CH10 序 從撰寫第一本 Android 2.x 手機程式開發教戰手冊 到此本 Android 5.x App 開發教戰手冊 歷經了 Android 四大版本 (2.x, 3.x, 4.x, 5.x),Android 系統也歷經了許多重大改變 : 系統的成長與改良 : 2.x 版僅支援手機, 而且操作流暢度差強人意 3.0 版開始支援平板, 但卻不支援手機, 苦了開發者要分別熟悉 2 套 API 4.0 版系統穩定性大幅提升,

More information

Microsoft Word - 02.目錄.doc

Microsoft Word - 02.目錄.doc 目錄 -1- 目錄 序 準備篇 一 使用說明... 0-2 二 標示說明... 0-6 三 注意事項... 0-7 第一類 Android 基礎知識 -UI 設計及語法應用 101. 整存整付計算機... 1-2 102. 電費計算機... 1-8 103. 點餐系統... 1-18 104. 計算 BMI 值... 1-23 105. MENU 功能選單... 1-36 106. 畫廊展示...

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

Microsoft Word - ASM SDK 說明文件

Microsoft Word - ASM SDK 說明文件 System Monitor SDK (for Android) 開發者指南說明書 1. 技術項目簡介 經由簡化的應用程式介面 (Application Programming Interface), 可 提供給 Android 應用程式開發者開發基於 System monitor 的應用程式 2. 應用範圍說明 本技術可應用於具備 Android 系統 2.3.3 以上版本的 Android 嵌入式裝

More information

Microsoft Word - AEL Part08

Microsoft Word - AEL Part08 推薦序 黃文良教授 中央研究院資訊科學研究所 近年來由於 3G 網路普及, 硬體運算效能提升, 再加上各式應用軟體的靈活便利性, 智慧型手機漸漸取代傳統行動電話融入日常生活, 包括電子郵件 網頁瀏覽 影音播放 地圖查詢 拍照攝影, 各種功能隨手呈現即時互動帶來無比方便彈性 這種普遍需求現象也反映在許多手機品牌的亮麗銷售數據上 我們可以預期在通訊成本持續降低, 雲端運算逐步成熟, 網路早已無所不至的時代,

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas Contents 目錄 chapter 1 1-1... 1-2 1-2... 1-3 HTML5... 1-3... 1-5 1-3... 1-9 Web Storage... 1-9... 1-10 1-4 HTML5... 1-14... 1-14... 1-15 HTML5... 1-15... 1-15... 1-16 1-5... 1-18 Apps... 1-18 HTML5 Cache

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

ShareText

ShareText 作者 : 林致宇 日期 :2012/1/23 問題 : 如何分享分享文字資訊給其它的應用程式? 解答 : 有時候我們可能會希望 我們的應用程式的資訊 能夠讓使用者分享出去, 讓使用者能夠將此資訊傳送簡訊給其好友或寄電子郵件的方式寄給其好友, 這份文件將示範如何寫出這樣的應用程式 本文件將產出兩個 App, 第一個 App 是 分享資料的來源, 名為 CopyPaste_Source, 功能非常簡單,

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

建模与图形思考

建模与图形思考 F06_c 观摩 :ContentProvider 基於軟硬整合觀點 架构與 DB 引擎移植方法 ( c) By 高煥堂 4 通用性基类 ContentProvider 基於軟硬整合觀點 的使用范例 刚才的范例里, 我们直接使用 DataPersist 类的接口来与 SQLite 沟通 本节将替 DataPersist 配上 ContentProvider 基类, 让 Client 能透过 ContentProvider

More information

範例 \Chapter7\BroadcastSender 這個專案, 並打開 BroadcastSender.java, 這個應用程式有三個按鈕, 按下這三個按鈕後會分別發送出不同的廣播, 之後我們會設計三種接收器 (receiver) 來接收這三種廣播, 由於這三個按鈕的傾聽者的程式碼相當類似,

範例 \Chapter7\BroadcastSender 這個專案, 並打開 BroadcastSender.java, 這個應用程式有三個按鈕, 按下這三個按鈕後會分別發送出不同的廣播, 之後我們會設計三種接收器 (receiver) 來接收這三種廣播, 由於這三個按鈕的傾聽者的程式碼相當類似, Chapter 7 Broadcast Receiver 作者 : 林致孙 在前面的章節, 我們瞭解一個 Android 應用程式是由一個或數個的 Activity 所組成的, 事實上一個 Android 應用程式是由四個構成要素所組成的 : Activity Broadcast Receiver Service Content Provider 一個應用程式不一定要具備所有的構成要素, 例如前面幾章所介紹的應用程式都只包含

More information

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466> packages 3-31 PART 3-31 03-03 ASP.NET ASP.N MVC ASP.NET ASP.N MVC 4 ASP.NET ASP.NE MVC Entity Entity Framework Code First 2 TIPS Visual Studio 20NuGetEntity NuGetEntity Framework5.0 CHAPTER 03 59 3-3-1

More information

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 -

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 - DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0-1 - 目录 1. 获取身份... 1 2. 加载与配置... 2 2.1 加载 SDK 文件... 2 2.2 配置 AndroidManifest.xml... 2 2.3 混淆代码... 3 3. 初始化... 4 4. 功能使用... 4 第 1 页共 1

More information

北京方研矩行科技有限公司 Android SDK 快速接入文档

北京方研矩行科技有限公司 Android SDK 快速接入文档 Android SDK 快速接入文档 目录 概要... 3 1 SDK 介绍... 3 2 AndroidMinfest.xml 配置... 4 3 SDK 初始化... 6 4 发送手机验证码... 10 5 注册... 11 6 登录... 11 7 获取产品列表... 12 8 获取设备列表... 13 9 发现设备... 14 10 绑定设备... 15 11 控制设备... 15 12 接收设备上报消息...

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63> 基 于 Android 平 台 的 电 子 拍 卖 系 统 摘 要 本 电 子 拍 卖 系 统 其 实 就 是 一 个 电 子 商 务 平 台, 只 要 将 该 系 统 部 署 到 互 联 网 上, 客 户 都 可 以 在 该 系 统 上 发 布 想 出 售 的 商 品, 也 可 以 对 拍 卖 中 的 商 品 参 与 竞 价 整 个 过 程 无 须 人 工 干 预, 由 系 统 自 动 完 成 本

More information

untitled

untitled 1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart

More information

Microsoft Word 杨超-spinner实现省市县的三级联动.docx

Microsoft Word 杨超-spinner实现省市县的三级联动.docx Spinner 实现省市县的三级联动 1801210908- 杨超 下拉框 Spinner 控件 : 常用属性 属性 说明 android:prompt 下拉提示信息 android:spinnermode 下拉显示方法 android:entries 配置下拉框数据源 android:dropdownwidth 下拉框显示模式下的显示项宽度 常用方法 方法 说明 getdropdownwidth()

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

ltu

ltu 資 訊 管 理 系 學 齡 前 自 主 學 習 之 行 動 裝 置 輔 助 系 統 指 導 教 授 : 李 靜 怡 教 授 組 員 名 單 : 蔡 承 育 988C012 黃 佳 誼 988C026 鄭 亦 琦 988C060 廖 曼 伶 988C108 中 華 民 國 1 0 2 年 5 月 嶺 東 科 技 大 學 資 訊 管 理 系 學 齡 前 自 主 學 習 之 行 動 裝 置 輔 助 系 統

More information

Microsoft PowerPoint - C_Structure.ppt

Microsoft PowerPoint - C_Structure.ppt 結構與其他資料型態 Janet Huang 5-1 結構的宣告 struct 結構名稱 struct 結構名稱變數 1, 變數 2,, 變數 m; struct 結構名稱 變數 1, 變數 2,, 變數 m; student; student; 5-2 1 結構變數初值的設定 struct 結構名稱 struct 結構名稱變數 = 初值 1, 初值 2,, 初值 n student="janet","1350901",100,95

More information

第一章 Android 基礎知識 -UI 設計及語法應用 驗證 Activity A. 解題要項 熟悉新增 Activity 的關鍵步驟以及在清單檔案內的註冊方式 熟悉 Activity 的切換方法與參數傳遞的技巧 熟悉 Activity 回傳結果 ( 含資料 ) 的關鍵步驟與接

第一章 Android 基礎知識 -UI 設計及語法應用 驗證 Activity A. 解題要項 熟悉新增 Activity 的關鍵步驟以及在清單檔案內的註冊方式 熟悉 Activity 的切換方法與參數傳遞的技巧 熟悉 Activity 回傳結果 ( 含資料 ) 的關鍵步驟與接 Android 基礎知識 -UI 設計及語法應用 101. 整存整付計算機 102. 點餐系統 103. 選擇手機型號 104. 手機與平板 UI 佈局 105. 計算 BMI 值 106. 設計 CardView 樣式 107. 驗證 Activity 108. 動態密碼顯示 109. 電影租片清單 110. 自動收合的廣告版位 第一章 Android 基礎知識 -UI 設計及語法應用 1-49

More information

教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 學校系所 : 樹德科技大學資訊工程學系

教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 學校系所 : 樹德科技大學資訊工程學系 教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 (s11639104@stu.edu.tw) 學校系所 : 樹德科技大學資訊工程學系 實驗目的 本實驗的目的在於讓同學們可以了解 Android 系統核心內部的行程通訊的原理, 透過呼叫系統提供的其中一樣服務

More information

内文-2.indd

内文-2.indd 客户端服务端音乐资源信息 : 1. 项目需求从本项目开始, 我们一起开发一个简单的在线音乐播放器, 它具有以下功能 (1) 程序启动时显示一个启动画面, 如图 1-1 所示 (2) 在程序主页面显示服务器上的歌曲列表, 包括歌手名与歌曲名, 单击列表条目可实现在线音乐播放, 单击 播放 暂停 上一曲 下一曲 按钮可实现对应的功能, 进度条可以显示歌曲播放进度, 如图 1-2 所示 图 1-1 程序启动画面

More information

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog 計劃名稱 : 104 年度教育部資通訊軟體創新人才推升推廣計畫跨校資源中心 : 雲端運算 ( 國立中山大學 ) 課程名稱 : 網路及平台服務 Part1- 課程教材 教材名稱 :Android 介面元件 -TableLayout Toast AlertDialog 國立高雄大學資訊工程學系張保榮教授 大綱 TableLayout 版面配置 Toast 版面配置 AlertDialog 版面配置 TableLayout

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 70-536Chinese(C++) Title : TS:MS.NET Framework 2.0-Application Develop Foundation Version : DEMO 1 / 10 1. Exception A. Data B. Message C.

More information

1. 请描述下Activity的生命周期。

1.    请描述下Activity的生命周期。 1. 请描述下 Activity 的生命周期 必调用的三个方法 :oncreate() --> onstart() --> onresume(), 用 AAA 表示 (1) 父 Activity 启动子 Activity, 子 Actvity 退出, 父 Activity 调用顺序如下 AAA --> onfreeze() --> onpause() --> onstop() --> onrestart()

More information

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型 文 章 编 号 :1007-757X(2012)1-0036-04 领 域 驱 动 模 型 的 WEB 软 件 系 统 设 计 研 究 摘 要 : J2EE 3 JDK1.7 Tomcat WEB 关 键 词 : 中 图 分 类 号 :TP311 文 献 标 志 码 :A 0 引 言 Web 软 件 系 统 的 分 层 结 构 典 型 的 J2EE 软 件 系 统 开 发 方 法 分 为 三 层 结

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

填 写 要 求 1. 以 word 文 档 格 式 如 实 填 写 各 项 2. 表 格 文 本 中 外 文 名 词 第 一 次 出 现 时, 要 写 清 全 称 和 缩 写, 再 次 出 现 时 可 以 使 用 缩 写 3. 本 表 栏 目 未 涵 盖 的 内 容, 需 要 说 明 的, 请 在

填 写 要 求 1. 以 word 文 档 格 式 如 实 填 写 各 项 2. 表 格 文 本 中 外 文 名 词 第 一 次 出 现 时, 要 写 清 全 称 和 缩 写, 再 次 出 现 时 可 以 使 用 缩 写 3. 本 表 栏 目 未 涵 盖 的 内 容, 需 要 说 明 的, 请 在 附 件 4 精 品 在 线 开 放 课 程 申 报 书 学 校 名 称 课 程 名 称 广 东 科 学 技 术 职 业 学 院 Java 面 向 对 象 程 序 设 计 课 程 类 别 专 业 基 础 课 专 业 核 心 课 所 属 专 业 课 程 负 责 人 申 报 日 期 推 荐 单 位 软 件 技 术 刘 晓 英 2016 年 6 月 1 日 计 算 机 工 程 技 术 学 院 广 东 省 教

More information

使用手冊

使用手冊 使用手冊 版權所有 2013 年 Microtek International, Inc. 保留所有權利 商標 Microtek MII MiiNDT ScanWizard Microtek International, Inc. Windows Microsoft Corporation 重要須知 Microtek Microtek Windows Microsoft Windows I49-004528

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

_banneradview.settest(true); _banneradview.setuserkeywords("swimming"); _banneradview.setusercategories("1,3,4"); _banneradview.setusergender(jdbanner

_banneradview.settest(true); _banneradview.setuserkeywords(swimming); _banneradview.setusercategories(1,3,4); _banneradview.setusergender(jdbanner 京东 APP 联盟 SDK Android 版接口说明文档 1.0 1. 嵌入 SDK 1.1 添加 SDK Android Studio 环境 : 菜单 New->New Module->Import.jar or.aar package, 然后选中 App 联盟 SDK 所带的 jar 文件 Eclipse+ADT 环境 : 将 App 联盟 SDK 所带的 jar 文件拷贝到 libs/ 目录下

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information