2010年6月14日 星期一

Android 嵌入式系統與介面設計研討會

Android 嵌入式系統與介面設計研討會
http://intw2-2010.cs.pu.edu.tw

Android 是目前在行動通訊領域中最受歡迎的平台之一,其應用為各行各業帶來了新的
機會與挑戰。雖然已有若干著名的範例系統如微軟的MSN、Google TV、網路通訊Skype
等陸續移植到Android平台上,然而不同的使用者者對這種新的應用模式仍各有不同的
認知與詮釋, 從服務導向架構與實際應用等層面對科技與生活進行剖析,絢爛繽紛的
Android平台依然是百家爭鳴的戰場,迄今仍呈有眾說紛紜各自表述的現象。 為能確切
了解Android的現況與未來發展,靜宜大學資訊工程學系與資訊管理學系將於6月25日舉
辦「Android 嵌入式系統與介面設計研討會」,特別邀請國內相關技術與研究的專家學
者講授其研究成果與經驗,歡迎各界的同好分享與交流。

日期: 99年6月25日 (星期五)
地點: 靜宜大學 主顧樓 115演講廳
主辦單位: 靜宜大學資訊工程學系、靜宜大學資訊管理學系
協辦單位: 靜宜大學資訊學院、ESW嵌入式軟體聯盟、長高科技


活動內容

講題:Design Patterns in Android Framework
演講者:王勝德 教授 (國立台灣大學電機系)

講題:Android 移植開發實務
演講者:謝紹紘 講師 (長高科技)

講題:Google Android I/O應用程式設計
演講者:林正敏 教授 (南開科技大學)

報名方式
請於99年6月22日(星期二) 前採用網路報名 http://intw2-2010.cs.pu.edu.tw
費用: 免費

聯絡方式
聯絡人:邱宜萱秘書/楊瓊瑤秘書
聯絡電話:(04) 26328001分機18021或18022
傳真: (04) 2653-0042
Email: yhchiou@pu.edu.tw, jyyang@pu.edu.tw

第一支Android NDK程式--HelloJni

這篇文章主要目的是Android NDK的HelloWorld從安裝到結果。
目前最新版的NDK是Android NDK, r4,所使用的windows XP/7的環境。
NDK主要是Android Native開發工具(JNI的開發),可以使Dalvik virtual machine內執行的JAVA程式與C/C++語言溝通。
要先了解何謂NDK可以先去android developer找一篇What is the Android NDK?

2010年6月11日 星期五

僑泰中學參加智慧型手機研習成果




今天下午僑泰高級中學資訊二丙師生來訪,參加本系規劃的智慧型手機程式設計研習,雖然他們都沒學過Java,但在約90分鐘的研習,再經過30分鐘的競賽,同學已學會如何設定圖片,撰寫按鈕處理程序,最高記得由王顧龍同學以完成9個按鈕奪得第一名。

2010年6月9日 星期三

使用計時訊息來控制LED


上篇提到如何利用計時器來更新UI內容,本篇將介紹它來控制LED,平台使用長高科技的6410XP,為了使模擬器能順利開啟執行畫面,我們把觸發硬體的控制命令放在按鈕的事件處理函式內。在此程式需要建立三個按鈕分別來控制閃爍、開啟驅動、關閉閃爍。其完整程式列表如下:
1. UpdateUIActivity.java

package tw.com.dmatek.dma6410xp.led;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class UpdateUIActivity extends Activity {
protected static final int led_on = 1;
private long mStartTime;
TextView mTimeLabel;
private int flag=0;
private int fd;
Button start,open,stop;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTimeLabel = (TextView) findViewById(R.id.timer);
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
stop=(Button) findViewById(R.id.stop);
stop.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
mHandler.removeCallbacks(mUpdateTimeTask);
}

});
start=(Button) findViewById(R.id.start);
start.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
mStartTime = System.currentTimeMillis();

mHandler.postDelayed(mUpdateTimeTask, 100);
}

});
start.setEnabled(false);
open=(Button) findViewById(R.id.open);
open.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
fd = Linuxc.openled();

if (fd < 0){
setTitle("open device false!");

finish();
}
else {
setTitle("open device success!");
start.setEnabled(true);
open.setEnabled(false);
}
}

});

}
private Handler mHandler = new Handler();
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
final long start = mStartTime;
long millis = System.currentTimeMillis() - start;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
if (seconds < 10) {
mTimeLabel.setText("" + minutes + ":0" + seconds);
} else {
mTimeLabel.setText("" + minutes + ":" + seconds);
}
flag=1-flag;
Linuxc.send(2, flag+1);
mHandler.postDelayed(mUpdateTimeTask, 100);
}
};
}


2. Linuxc.java

package tw.com.dmatek.dma6410xp.led;

import android.util.Log;

public class Linuxc {
static {
try {
Log.i("JNI", "Trying to load libled.so");

System.loadLibrary("led");
}
catch (UnsatisfiedLinkError ule) {
Log.e("JNI", "WARNING: Could not load libled.so");
}}

public static native int openled();

public static native int closeled();

public static native int send(int led_num, int on_off);
}

Android電話可用的秘技

分享一個剛在網路上看到的有趣密技
在打電話的撥號畫面輸入:
*#*#4636#*#*
會出現一個畫面選單:手機資訊、電池資訊、電池紀錄、使用統計

2010年6月8日 星期二

OPhone另一個Android系統

對於Android有興趣,可以參考中國所開發的OPhone。
OPhone將比iPhone更好嗎?
官方網站,可下載SDK。

使用計時器來更新畫面


在Android官方網站上,提到如何利用計時功能來更新人機介面的內容。http://developer.android.com/resources/articles/timed-ui-updates.html
以下是修改自該篇文章的完整範例:

package com.example.update;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;

public class UpdateUIActivity extends Activity {
private long mStartTime;
TextView mTimeLabel;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTimeLabel = (TextView) findViewById(R.id.timer);
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
}
private Handler mHandler = new Handler();


private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
final long start = mStartTime;
long millis = System.currentTimeMillis() - start;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;

if (seconds < 10) {
mTimeLabel.setText("" + minutes + ":0" + seconds);
} else {
mTimeLabel.setText("" + minutes + ":" + seconds);
}
mHandler.postDelayed(mUpdateTimeTask, 100);

}
};
}

2010年6月5日 星期六

用 Wii 遙控器玩 Android

Wii搖桿可以玩在Android遊戲....
只要在Android手機中安裝Wiimote Controller後,玩家就可透過藍牙連結,
用Wiimote玩Android手機中的遊戲。


引用:網站連結
Market: market://search?q=pname:com.ccpcreations.android.WiiUseAndroid

2010年6月4日 星期五

HTC已經開放Hero升級2.1

今天早上10:00 HTC已經公佈HERO升級2.1的版本.
下面是我的截圖:

2010年6月1日 星期二

車用短距離開放實驗室已開放申請

由財團法人資訊工業策進會新興智慧技術研究所規劃成立的車用短距離開放實驗室已開放申請,該實驗室開放給車載教學聯盟中心教授、學生、以及參與該中心之成員免費使用。
實驗室提供的設施,使用時間分為上午與下午兩個時段。實驗室使用前請先透過e-mail(III_DSRCOpenLab@yahoo.com.tw)方式 --註明申請單位(報名創新應用競賽的團隊名稱)、欲預約日期與時段--申請預約使用。時段預約情況,請查詢http://tw.calendar.yahoo.com/III_DSRCOpenLab每次預約以不連續超過四個時段為原則。