作者erspicu (.)
看板AndroidDev
標題[問題] 高效率的console文字模擬?
時間Thu May 24 22:02:14 2012
簡單來說就是利用Textview來模擬一個終端機console的介面
然後用settext來模擬print的行為
public LinkedList<String> screen_text = new LinkedList<String>();
public String get_screen_txt (String tmp){
String [] lines = tmp.split("\n") ;
for( int i=lines.length-1 ; i>=0 ; i-- )
screen_text.addFirst(lines[i]+"\n");
while (screen_text.size()>15)
screen_text.removeLast();
String[] a = new String[screen_text.size()];
tmp = "";
for(String element : screen_text.toArray(a)) {
tmp += element;
}
update_finish = true;
return tmp ;
}
最快的方法應該是
http://stackoverflow.com/questions/8346833/console-textview-android
可是這篇沒考慮到當列印次數越來越多
字串變數越來越長
浪費記憶體的問題
而我的方法會考慮到螢幕能容納的行數
自動刪除螢幕以外的字串資料
不過效率上看起來似乎不是很理想
有人處理過這種問題嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.69.92.20
推 yauhh:模仿 BitmapFactory解? 05/24 22:36
→ nobody1:string 和 stringbuilder 的差別知道嗎? 05/25 00:10
java版有說阿 可是我的重點是想放在演算法層面
至於用stringbuilder的加速方法 以後再來弄看看
附帶一提 其實效果也還OK拉... 只是覺得為了處理一個print
需要動用到那麼多行程式碼 想說看看有沒有比較精簡的方式而已
不過似乎就是去做一個FIFO的QUEUE 好像很難再找到更好的方式
※ 編輯: erspicu 來自: 219.69.92.20 (05/25 00:43)
推 qrtt1:知道有效的就先做吧。以後再弄!? 05/25 13:10
→ yauhh:你所提的效率是想要限制記憶體的耗用還是加快印字速度? 05/25 21:48
其實兩點目前都不夠成問題
只是說覺得這樣一個簡單的print模擬需求
需要動用到這麼多行程式碼 有沒有比較精簡的寫法
當然記憶體問題也得考慮 不然stackoverfollow的解法 應該是最快最簡單的了
※ 編輯: erspicu 來自: 111.184.196.83 (05/25 21:51)
→ yauhh:原來是說寫程式的過程最快 05/25 22:02