Android Developer Guide:
from Linuxpia
仔細的介紹!
2011年8月30日
2011年8月27日
Android: android rtmp network recorder
android-recorder - android rtmp network recorder - Google Project Hosting
This is a complete example for android-rtmp-client. Now you can download the whole project from Downloads tab.
android-recorder是为演示android-rtmp-client库在android上的使用而创建的项目,这只是一个功能演示,而不是一个完整的产品。每一次迭代过程中的代码和相关工具都已打包上传到 Downloads下。
Main change of each version:
Get PCM data from mic.
Encode with speex.
This is a complete example for android-rtmp-client. Now you can download the whole project from Downloads tab.
android-recorder是为演示android-rtmp-client库在android上的使用而创建的项目,这只是一个功能演示,而不是一个完整的产品。每一次迭代过程中的代码和相关工具都已打包上传到 Downloads下。
Main change of each version:
Get PCM data from mic.
Encode with speex.
讓Blogger支援Syntax Highlighting
想顯示程式的Syntax Highlighting,在網上google半天,先找到SyntaxHighlighter。用了之後效果是很棒,但因為連結它所提供的網站速度,還是有點兒慢,所以今天繼續找尋別的方式。結果踏破鐵鞋無覓處,得來全不費功夫,Google的google-code-prettify就很好用了呀!真奇怪,Blogger也是Google的,怎麼不內建此功能呢?
參考網站說明和作法整理如下:將底下的javascrip放到範本</head>之前即可,其中修改了背景顏色、邊框顏色和邊距等參數。
參考網站說明和作法整理如下:將底下的javascrip放到範本</head>之前即可,其中修改了背景顏色、邊框顏色和邊距等參數。
<script language='javascript' src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'/> <link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/> <style> pre { background-color : #f7f7f7; overflow : auto ; } pre.prettyprint { padding: 12px; border: 1px solid #777; } </style>
Android HttpClient / Java URL
取得網頁
取得圖片
String urL = "http://www.網址.."; HttpPost httpP = new HttpPost (urL); List <NameValuePair> params = new ArrayList <NameValuePair>(); params.add(new BasicNameValuePair("param1", "value1")); try { httpP.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); HttpResponse httpR = new DefaultHttpClient().execute(httpP); if (httpR.getStatusLine().getStatusCode() == 200) { String ret = EntityUtils.toString(httpR.getEntity()); Toast.makeText(main.this, out1, Toast.LENGTH_LONG).show(); } } catch (Exception e) { e.printStackTrace(); }
取得圖片
try { String urlAddress = "http://a.rimg.com.tw/ahd/01_106.jpg" ; InputStream is = (InputStream) (new URL(urlAddress)).getContent(); Drawable image = Drawable.createFromStream(is, "src"); capImage.setImageDrawable(image); } catch (MalformedURLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
2011年8月26日
2011年8月25日
Java : ==
== 運算在Java中被用來比較左右兩個名稱,是否指向同一物件,例如:
當要比較兩個字串內容是否相同,要用equals(),
例如:
此時 if (a.equals(b)) 為true
String a = new String("abcd");
String b = new String("abcd");
此時if (a==b)為false,因為a與b是分別指向不同的字串物件,String b = new String("abcd");
當要比較兩個字串內容是否相同,要用equals(),
例如:
String a = new String("abcd");
String b = new String("abcd");
String b = new String("abcd");
此時 if (a.equals(b)) 為true
2011年8月24日
Android: 存放檔案到sd卡
Activity的openFileOutput()將檔案存在手機內存記憶空間,
一般而言手機的內存記憶空間不大,存放小檔案還ok,
對於大檔案我們需放在外部的SD卡。
一般而言手機的內存記憶空間不大,存放小檔案還ok,
對於大檔案我們需放在外部的SD卡。
在AndroidManifest.xml中加入以下權限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
// 判斷手機是否已装有SD卡,且可以讀寫。
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
// 取得SD卡目錄
File sdDir = Environment.getExternalStorageDirectory();
File saveFile = new File(sdDir, "test.txt");
FileOutputStream outS = new FileOutputStream(saveFile);
outS.write("Hellow,World.許功閱".getBytes());
outS.close();
}
Android: 時鐘Clock機制
大略翻譯Android技術文件如下:
Android 有三種不同的時鐘可用,分別陳述如下:
Android 有三種不同的時鐘可用,分別陳述如下:
- System.currentTimeMillis() 如同掛在牆壁上的時鐘(時間/日期)以milliseconds表示之,可被使用者或經由網路隨意往前或往後調整的時鐘(函數setCurrentTimeMillis(long))。此時鐘應該只用來與真實時間相關是務上,例如行事曆或鬧鐘等應用程式。計算時距或經過時間,應該使用底下的時鐘。當使用System.currentTimeMillis() 時,可以接收 ACTION_TIME_TICK,ACTION_TIME_CHANGED 和ACTION_TIMEZONE_CHANGED等Intent的廣播來得知時間的改變。
SystemClock.uptimeMillis()
計算從系統啟動booted到現在所經過的milliseconds時間,但當系統進入深睡時(CPU停止,螢幕關閉,裝置等待外部輸入) 此時鐘會停止,除此之外不受其他影響。此時鐘是大部份計算時間間隔的基礎,例如Thread.sleep(millls),
Object.wait(millis)和
System.nanoTime()。
計算
它保證是遞增的,建議用來一般使用者介面事件、效能或其他任何無須考慮裝置睡覺時間的時間間隔。
uptimeMillis()
clock 傳回 timestamp 值。
Android: AlarmManager 鬧鐘用法
Alarm Manager元件用來排程,當時間到時系統會廣播註冊指定的Intent啟動目標程式,就算目標程式並未在執行中也一樣。若是裝置在睡眠中,則依參數而定,註冊的鬧鐘會保留或喚醒裝置。當系統關閉並rebooted時,會清除鬧鐘的設定。當廣播接受端執行onReceive() 時,Alarm Manager會保持CPU清醒直到處理結束。裝置有可能一旦執行完onReceive()時,立刻進入昏睡(睡眠不足:),所以不要在onReceive()中呼叫非同步動作的函數。若一定要作時,請自行處理wake lock policy(鎖定清醒)。
- ELAPSED_REALTIME 使用 elapsedRealtime() 計時;從系統啟動後至目前的時間(包含睡覺時間)
- ELAPSED_REALTIME_WAKEUP 同上,並喚醒裝置
- RTC 使用 currentTimeMillis() 牆壁時鐘UTC格式
- RTC_WAKEUP 同上,並喚醒裝置
2011年8月23日
Android: Intent 呼叫瀏覽器開啟指定網頁
底下試舉兩種Intent呼叫方法,用兩個Button掛在同一個接收器用getID()區分。
Button.OnClickListener btnCallTestClickListener
= new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
try {
String strURL1 = "http://tw.yahoo.com";
String strURL2 = "http://www.google.com.tw";
switch (arg0.getId()) {
case R.id.callTest1:
Intent ie = new Intent(Intent.ACTION_VIEW,Uri.parse(strURL1));
startActivity(ie);
break;
case R.id.callTest2:
Intent ie2 = new Intent();
ComponentName comp = new ComponentName("com.android.browser",
"com.android.browser.BrowserActivity");
ie2.setComponent(comp);
ie2.setAction(Intent.ACTION_VIEW);
ie2.setData(Uri.parse(strURL2));
startActivity(ie2);
break;
}
//
} catch (Exception e) {
e.printStackTrace();
}
}};
訂閱:
文章 (Atom)