http://twntwn.info/blog/ajer001/archives/2728
http://maci.pixnet.net/blog/post/22930392
http://www.jaceju.net/blog/archives/21
搜尋此網誌
2011年3月31日
[轉] Ubuntu 10.04 換成 sun-java-jdk 的步驟
add-apt-repository "deb http://archive.canonical.com/ lucid partner"
apt-get update
apt-get install sun-java6-jdk sun-java6-plugin
update-java-alternatives -s java-6-sun
apt-get update
apt-get install sun-java6-jdk sun-java6-plugin
update-java-alternatives -s java-6-sun
2011年3月29日
fileop porting to Android
fileop 其實就在 iozone 裡面,iozone 編譯好就產生了
但是 fileop 也可以單獨編譯,command 如下:
arm-linux-gcc -static -o fileop fileop.c
但是 fileop 也可以單獨編譯,command 如下:
arm-linux-gcc -static -o fileop fileop.c
Bonnie++ porting to Android
Purpose: Porting x86 Linux community tool - Bonnie++ to Android
Steps:
- Download Bonnie++ source code
- Uncompress
- ./configure --host=arm-linux CC=/(your arm-eabi path)/arm-non-linux-gnueabi-g++
- Modify Makefile
- CFLAGS=............ -static
- CXX=(your arm-eabi path)/arm-none-linux-gnueabi-g++ $(CFLAGS)
Execution command: ./bonnie++ -d /path_tobetest -u 1000 -s (test size)
ex: ./bonnie++ -d /sdcard -u 1000 -s 4096
Android data service (PDP) on/off - APN modify or switch
目的: 在 Android 中進行 packet switch 的 on/off test
方法:
方法:
- 使用 Content resolver: http://osdir.com/ml/Android-Developers/2010-01/msg03787.html
- 使用 APNDroid API: http://code.google.com/p/apndroid/wiki/API
- http://www.javaeye.com/topic/565662
- 修改 Setting 裡面的 checkbox
- 尚未找到如何用 code 去修改
- 可以用 Monkey 進行 on/off 控制
參考:
- 修改 APN default setting: http://blog.xuite.net/yfchen0621/blog/33163713
- Data connect 流程: http://hi.baidu.com/anly_jun/blog/item/2430c2fbb5b70d69034f56c3.html
- APN 流程分析: http://hi.baidu.com/ylfan2006/blog/category/android%BF%AA%B7%A2
2011年3月18日
Blogger 增加美觀的 Source Code 區域
兩個參考:
- 良大提供超棒的 CSS 範本
- http://klcintw4.blogspot.com/2006/11/blog-post_03.html
- http://mis.grandsights.twbbs.org/2007/04/blogger.htm
- 使用 Textarea
- 其他 CSS
- ASH網站 (hightlight): http://blog.kbslave.com/2008/05/blogger.html
- Syntaxhighlighter: http://www.inote.tw/2009/02/blogger.html
2011年3月17日
[轉] Android 中定時器的幾種用法總結
【原】android 中定時器的幾種用法總結
2010-11-08 18:08
在android中,經常用到的定時器主要有以下幾種實現: 一、採用Handler與線程的sleep(long )方法 二、採用Handler的postDelayed(Runnable, long) 方法 三、採用Handler與timer及TimerTask結合的方法。 下面逐一介紹: 一、採用Handle與線程的sleep(long )方法 Handler主要用來處理接受到的消息。這只是最主要的方法,當然Handler裡 還有其他的方法供實現,有興趣的可以去查API,這裡不過多解釋。 1.定義一個Handler類,用於處理接受到的Message. Handler handler = new Handler() { public void handleMessage(Message msg) { //要做的事情 super.handleMessage(msg); } }; 2.新建一個實現Runnable接口的線程類。如下: public class MyThread implements Runnable{ @Override public void run() { // TODO Auto-generated method stub while (true) { try { Thread.sleep(10000);//線程暫停10秒,單位毫秒 Message message=new Message(); message.what=1; handler.sendMessage(message);//發送消息 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } 3.在需要啟動線程的地方加入下面語句: new Thread(new MyThread()).start(); 4.啟動線程後,線程每10s發送一次消息。 二、採用Handler的postDelayed(Runnable, long) 方法 這個實現比較簡單一些: 1. Handler handler=new Handler(); Runnable runnable=new Runnable(){ @Override public void run() { // TODO Auto-generated method stub //要做的事情 handler.postDelayed(this, 2000); } }; 2.啟動計時器: handler.postDelayed(runnable, 2000);//每兩秒執行一次runnable. 3.停止計時器: handler.removeCallbacks(runnable); 三、採用Handler與timer及TimerTask結合的方法。 1.定義定時器、定時器任務及Handler句柄 private final Timer timer = new Timer(); private TimerTask task; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub //要做的事情 super.handleMessage(msg); } }; 2.初始化計時器任務。 task = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; 3.啟動定時器 timer.schedule(task, 2000, 2000); 簡要說一下上面三步提到的一些內容。 1.定時器任務(TimerTask)顧名思義,就是說當定時器到達 指定的時間時要做的工作,這裡是想Handler發送一個消息, 由Handler類進行處理。 2. java.util.Timer.schedule(TimerTask task, long delay): 這個方法是說,dalay/1000秒後執行task.只執行一次。 java.util.Timer.schedule(TimerTask task, long delay, long period): 這個方法是說,delay/1000秒後執行task,然後進過period/1000秒 再次執行task,這個用於循環任務,執行無數次, 當然,你可以用timer.cancel();取消計時器的執行。 希望對你有所幫助。請尊重原創,這裡是ljlkings的空間。 |
2011年3月16日
Android developing flow / Android 開發流程與重點元件
- Ready stage:
- Setup developing environment.
- First Hello program, then refer Android SDK examples (First should be ApiDemos).
- Find a sample and download APKs from Android Market. Just have a trial. Emulator is just ok.
- Documents study (Especially all documents / FAQ in Android Developers Site, and some FAQ in big Forums). Also compare new functions Android provided.
- Study stage: (Application level)
- Android APK structure
- AndroidManifest.xml
- res
- layout
- values
- others
- src
- others
- AndroidManifest.xml structure
- MUST well-know the purpose of this file
- Study all tags / permissions / others
- Ref: http://developer.android.com/guide/topics/manifest/manifest-intro.html
- Four components (Activity / Service / Broadcast Receiver / Content Provider)
- Details of Activity
- Life cycle
- Activity stack
- View (UI components) / Layout / Menus / List / Widget / Dialogs / Others
- Intent / Intent flags (To control Activity attributes)
- Launch mode
- Task attributes
- Task affinities
- Intent flags
- Others
- Details of Service
- Life cycle
- Binders
- Remote services
- Details of BR
- Life cycle
- Details of CP
- Interaction of four components
- Thread / Timer / Handler / Messaging using
- Activity / Task / Process / Thread relationship
- Data exchange => http://pontiffkao.blogspot.com/2011/02/activity.html
- Queue / FIFO?
- Rich functions:
- Debug => http://pontiffkao.blogspot.com/2011/02/android-android-debug-tool-eclipse-ant.html
- Graphics (2D / 3D / Animation / Surface)
- Multimedia (Audio / Video / Camera)
- Location (Navi / GPS / Maps)
- 2G / 3G / 4G (Data / Voice / Message / Phone related)
- Widget
- Networking
- Database
- Web (WebView / WebKit
- Wireless (BT / WLAN)
- Touch (Touch screen / Gesture)
- Sensors
- VoIP
- NFC
- Others
- Application publish to Market
- Unit test
- CTS test
- Coding style / Coding performance
- Advance stage: (System level)
- Android source code parsing / study
- Android CTS study
- Android boot flow (bootchart / init)
- Android system process (Dalvik / Zygote / Others)
- Dalvik study
- Cross compile environment
- Image build system
- Kernel porting / patching
- BSP / Driver
- Android porting / patching
- Your owned framework / library (Native code)
- Your owned HAL
參考連結:
- http://eagle.phys.utk.edu/guidry/android/index.html
- http://blog.akquinet.de/
- http://developer.android.com/
2011年3月15日
Android Application Model Lab - Android AP實驗室 (Part2)
測試目的: 呼叫 Activity 內部與外部呼叫 (Flag 留到下次再測)
測試項目: (Stack 變化可從 dump app stat 中取得)
Case2: 呼叫內部 Activity by stratActivityForResult()
Case4: 呼叫外部 Activity (呼叫 2nd's sub activity)
Case5: 呼叫外部 Activity,配合 finishActivity()
Case6: Key vs Package
測試項目: (Stack 變化可從 dump app stat 中取得)
- 呼叫內部 Activity (w/wo Finish(), Stack 變化)
- 呼叫外部 Activity (w/wo Finish(), Stack 變化)
Case1: 呼叫內部 Activity by startActivity()
- Call internal activity without finish()
- A1 -> A2 -> A3, then back to HOME, then re-launch, then press return key:
- A3 -> A2 -> A1 -> HOME
- Call internal activity with finish()
- A1 -> A2.finish() -> A3, then back to HOME, then re-launch, then press return key:
- A3 -> A1 -> HOME
- 結論: 使用 finish() 後,該 activity 將會從 activity stack 中移除,等同按 Return key
Case2: 呼叫內部 Activity by stratActivityForResult()
- The program: A(A1/A2/A3)
- Case A: A1 -> (startActivity) -> A2 -> (startActivityForResult, int(pattern1)) -> A3 (get pattern1, pattern1++, Finish())
- 結論: (變數名稱要一致,且 A3 一定要搭配 Finish();)
- 假設 pattern1 = 1。A3 finish 後,A2 取出的 pattern1 = 1。(也就是說,pattern1++ 後,A2 看到的還是舊 pattern1 = 1)
- pattern1 變數名稱要一樣,若 A3 宣告成 (pat3 = pattern1, pat3++),A2 收到的 pattern1 = 0。
- Case B: A1 -> (startActivity) -> A2 -> (startActivityForResult, int(pattern1)) -> A3 (get pattern1, pattern1++, Intent-Browser)
- Browser 會直接被 Intent 起來,A2 不會收到任何 return value。
Case3: 呼叫外部 Main Activity by stratActivity()
- Two programs: A(A1/A2/A3) & B(B1/B2)
- Activity call: A(A1 -> A2 -> A3 -> B1) / B(B1 -> B2)
- Step:
- Launch A (A1 -> A2 -> A3 -> B1 -> B2) => 最後畫面是 B2
- Back to HOME, then launch B(B1 -> B2), then press return key to B(B1) => 最後畫面是 B1
- Back to HOME, then check A & B program UI
- Re-launch A => Latest UI is B2
- Re-launch B => Latest UI is B1
- Re-launch A => Still at B2
- 結論:
- 當 A3 呼叫 B1 Activity 時,Mem 會產生兩個 Process, 一個是 A 的,一個是 B 的
- 同一個 Process 所 launch 的 activity 都會在該 Task's activity stack 中,儘管包含不同 application 的 activity
Case4: 呼叫外部 Activity (呼叫 2nd's sub activity)
- Same way as case3
- 結論: (Same as Case3)
- 呼叫別人的 Layout (xx.xml),要將變數全數 implement 到 code 裡。(setContentView(R.layout.main);)
- Intent activity:
- 同一個 program:
- Intent intent1 = new Intent();
- intent1.setClass(HelloLabTest.this, Activity2.class);
- startActivity(intent1);
- 不同 program:
- Intent intent1 = new Intent();
- intent1.setClassName("com.android.test2", "com.android.test2.Activity10");
- startActivity(intent1);.
Case6: Key vs Package
- [轉] Package name 不同,則簽名key是否相同無所謂,兩個apk都可以安裝。
- [轉] Package name 相同,簽名key相同則會覆蓋
- [轉] Package name 相同,簽名不同則第二個apk安裝會失敗。
Case7: [轉] 不同 Apk,Share User ID 相同
- XML 修改: android:sharedUserId="com.demouser"
- 導出/data/system/packages.xml,查看其內容
參考資料:
- http://wallage.blog.163.com/blog/static/17389624201011010539408/
- http://www.lhzhang.org/post/2010/09/Androide9809ae8bf87e585b1e4baabe794a8e688b7IDe69da5e5ae9ee78eb0e5a49aActivitye8bf9be7a88be585b1e4baab.aspx
2011年3月13日
網頁分析工具 / (Web analysis, HTTP analysis, HTTP debug, Web developing tools)
Target:
IE Plug-in:
Firefox Plug-in:
Chrome Tools: (--purge-memory-button --enable-extension-timeline-api --enable-benchmarking)
Others:
- Web server identify / Web service identify
- URL check
- Web developing tools / Web debug tools
- Web test tools / Web performance tools
- Web compatibility test
- Web validator tools
- Web analysis tools
- Web ranking tools
- Browser function test / Browser compatibility test / Browser performance test
- Browser page re-loader
IE Plug-in:
- HTTPWatch
- 開發者工具 (Web Developer)
- Fiddler
- Firebugger
- Firebug Lite
- DebugBar
- PageTest
Firefox Plug-in:
- Web Developer
- Firebug / Firebug Extensions
- YSlow
- Live HTTP Headers
- User Agenet Switcher
- HTML Validator
- SEO tools
- Good Website Inspector 1.0RC1
- Memory Profiler
- CustomBench
- FirePHP
- SEO & Website Analysis
- HTTPFox
- DOM Inspector
- Ranking tools
- Web Analytics Solution Profiler
- Page Speed
- WebPageTest
- WebMaster
- Tamper data
- Firelogger
- Greasefire / Greasemonkey
- HTTPfox
- Lori
- Server spy
- Site information tool
- Monifox
- W3Techs Website Technology Information
- 開發人員工具
- Speed Tracer
- Web server notify
- Google sniffer
- Ultimate Chrome Flag
- Benchmark page
- Domain detail
- SEO tools
- WOT
- IE tab
Others:
- Charles
- IETester
- Public Web 提供 Web timeline 和 component 分析
- 瀏覽器效能測試網站
- Apache (ab)
- JMeter
- Siege
- HTTP_Load
- Avalanche
- autobench / httperf
- webbench
- Web Application Stress
- Pylot
- Wbox HTTP testing tool
- Web Page Analyser
- Grinder
2011年3月8日
行動手寫筆 / 數位手寫筆 / NoteTaker / Digital Pen
在飛機的購物手冊中發現個有趣的小東西
先做筆記起來
主要有幾種 Type:
廠牌:
先做筆記起來
主要有幾種 Type:
- 需要特殊介質 (數位板 / 數位紙) or 數位板+一般紙 or 軟板
- 一般紙: 透過Wireless 傳輸方式 + OCR 進行數位化
- iPad 專用軟體
- Digital pen only (耗材,需要搭配其他的傳輸板或傳輸器)
廠牌:
- UltraPen
- Benevo
- IOGear
- Logitech
- XP-Pen
- Pegasus
- ReadWriteThink
- AquaMind
- Nokia
- IRISnotes
- Anoto
- livescribe
- 行動手寫筆
- 數位手寫筆
- 數位筆
- Note Taker / NoteTaker
- Digital Pen
2011年3月2日
Windows phone 7 (WP7) 參考資料 - Reference document/URL
http://msdn.microsoft.com/zh-TW/ff728583.aspx
http://msdn.microsoft.com/zh-tw/windowsphone
http://msdn.microsoft.com/zh-tw/windowsphone/ff955788
http://www.microsoft.com/taiwan/windowsphone/meet/wp7.aspx?WT.mc_id=wp7promo
http://msdn.microsoft.com/zh-tw/windowsphone
http://msdn.microsoft.com/zh-tw/windowsphone/ff955788
http://www.microsoft.com/taiwan/windowsphone/meet/wp7.aspx?WT.mc_id=wp7promo
2011年3月1日
印度寶萊塢電影 - 三個傻瓜 (3 Idiots) 觀後感
只有一句話: 台灣又輸了!
3C 輸韓國、電影輸印度、廣告輸泰國...我不知道我們還有多少東西可以繼續輸...
從心中的小星星,一直到三個傻瓜,印度電影的質,讓我大大的訝異與讚嘆。
以前一直不喜歡百老匯與寶萊塢的歌唱形式,總覺得電影,就是要雄偉的氣勢 + 媲美 Pop Opera 的悠揚配樂才是首選,但是再看完三個傻瓜後,發覺自己才真是"天才"。三個傻瓜,在電影世界中其實是天才,所以呢,我這個淺見的笨蛋,以電影世界的角度來看,只好稱做天才囉。
主角是印度天王: Aamir Khan。一個勇於挑戰體制,創新又富有同理心的人,在一個印度封閉的教育制度與家庭教育中,不斷的拋出挑戰,偏生這些挑戰卻又富饒詼諧與值得玩味。就像在台灣,很多年輕人不願意照顧老人、與家長共處,因為覺得這些老人家很"盧",講不通。老人家有老人家的智慧與堅持,年輕人有次文化與新知識的填充,在沒有磨合的狀況,挑戰與堅持就不斷的共生共戰。
裡面當然有很多橋段是很衝突的、很刺激的,例如馬蓋先式的電鳥鳥,或者誇張的破壞學校講演。姑且不議手法的好壞,我覺得片中最想凸顯的是"本質"。主角的行徑推演出動機,動機來自於本質的追求,而本質指的是什麼? 就是教育的起始點。
另外一個起點,是一直到看到最後才豁然開朗,所以片子也是前後時空交叉的編排手法。為什麼主角有這麼跳脫的心境,來看到整個體制? 因為他的角色設定。他,不是一個應該在體制內的學生,他的目標與動機不同,也造就他不同看到事物的角度。所以呼應我之前寫的一句話:
處在什麼角色,就換什麼頭腦。更應該說,即使不是那個角色,也應該裝那樣的頭腦,這樣看事情才全面、廣度與深度兼具。基層工程師,就不應該裝主管的頭腦嗎? 寫程式的小咖,就不應該去思考企業與公司的願景嗎? 當然不對。這也是這片中,我得到的體會。
真的,看完心有戚戚焉,自己也常常做一樣的事情,只是結果廻異。但是整個片子最值得玩味的,就是日子還是要繼續走。不管碰到多少挫折與刁難,堅持理想與目標,套一句我們古人的諺語: 天無絕人之路。這片其實充滿了希望與期待,尤其在苦與樂的明快交織中,更見編劇與導演的功力。
片子也在有"小西藏"之稱的拉達克拍攝,廣大恢弘的場景,台灣可是見不到的。但老實說,西藏更大更美,乾淨而有種接近天邊的感覺,純真而自然。看完這片,再推薦各位去觀看另外兩部影片: 喬派西主演的"乞丐博士 (With honors)",與真實故事"阿拉斯加之死-荒野生存 (Into the wild)"。都是對社會有著深深的期盼與不滿,而用自己的方式來對抗。可惜與三個傻瓜的結局不一樣,一個是落魄一生、帶著懷疑與失望而死; 後者在找不出人生的答案中,痛苦的虛弱而往生在荒野中。但是這三部電影,都有很強的論述,很值得一看再看。
3C 輸韓國、電影輸印度、廣告輸泰國...我不知道我們還有多少東西可以繼續輸...
從心中的小星星,一直到三個傻瓜,印度電影的質,讓我大大的訝異與讚嘆。
以前一直不喜歡百老匯與寶萊塢的歌唱形式,總覺得電影,就是要雄偉的氣勢 + 媲美 Pop Opera 的悠揚配樂才是首選,但是再看完三個傻瓜後,發覺自己才真是"天才"。三個傻瓜,在電影世界中其實是天才,所以呢,我這個淺見的笨蛋,以電影世界的角度來看,只好稱做天才囉。
主角是印度天王: Aamir Khan。一個勇於挑戰體制,創新又富有同理心的人,在一個印度封閉的教育制度與家庭教育中,不斷的拋出挑戰,偏生這些挑戰卻又富饒詼諧與值得玩味。就像在台灣,很多年輕人不願意照顧老人、與家長共處,因為覺得這些老人家很"盧",講不通。老人家有老人家的智慧與堅持,年輕人有次文化與新知識的填充,在沒有磨合的狀況,挑戰與堅持就不斷的共生共戰。
裡面當然有很多橋段是很衝突的、很刺激的,例如馬蓋先式的電鳥鳥,或者誇張的破壞學校講演。姑且不議手法的好壞,我覺得片中最想凸顯的是"本質"。主角的行徑推演出動機,動機來自於本質的追求,而本質指的是什麼? 就是教育的起始點。
另外一個起點,是一直到看到最後才豁然開朗,所以片子也是前後時空交叉的編排手法。為什麼主角有這麼跳脫的心境,來看到整個體制? 因為他的角色設定。他,不是一個應該在體制內的學生,他的目標與動機不同,也造就他不同看到事物的角度。所以呼應我之前寫的一句話:
處在什麼角色,就換什麼頭腦。更應該說,即使不是那個角色,也應該裝那樣的頭腦,這樣看事情才全面、廣度與深度兼具。基層工程師,就不應該裝主管的頭腦嗎? 寫程式的小咖,就不應該去思考企業與公司的願景嗎? 當然不對。這也是這片中,我得到的體會。
真的,看完心有戚戚焉,自己也常常做一樣的事情,只是結果廻異。但是整個片子最值得玩味的,就是日子還是要繼續走。不管碰到多少挫折與刁難,堅持理想與目標,套一句我們古人的諺語: 天無絕人之路。這片其實充滿了希望與期待,尤其在苦與樂的明快交織中,更見編劇與導演的功力。
片子也在有"小西藏"之稱的拉達克拍攝,廣大恢弘的場景,台灣可是見不到的。但老實說,西藏更大更美,乾淨而有種接近天邊的感覺,純真而自然。看完這片,再推薦各位去觀看另外兩部影片: 喬派西主演的"乞丐博士 (With honors)",與真實故事"阿拉斯加之死-荒野生存 (Into the wild)"。都是對社會有著深深的期盼與不滿,而用自己的方式來對抗。可惜與三個傻瓜的結局不一樣,一個是落魄一生、帶著懷疑與失望而死; 後者在找不出人生的答案中,痛苦的虛弱而往生在荒野中。但是這三部電影,都有很強的論述,很值得一看再看。
訂閱:
文章 (Atom)