[問題] 高效率的console文字模擬?
簡單來說就是利用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
推
05/24 22:36, , 1F
05/24 22:36, 1F
→
05/25 00:10, , 2F
05/25 00:10, 2F
java版有說阿 可是我的重點是想放在演算法層面
至於用stringbuilder的加速方法 以後再來弄看看
附帶一提 其實效果也還OK拉... 只是覺得為了處理一個print
需要動用到那麼多行程式碼 想說看看有沒有比較精簡的方式而已
不過似乎就是去做一個FIFO的QUEUE 好像很難再找到更好的方式
※ 編輯: erspicu 來自: 219.69.92.20 (05/25 00:43)
推
05/25 13:10, , 3F
05/25 13:10, 3F
→
05/25 21:48, , 4F
05/25 21:48, 4F
其實兩點目前都不夠成問題
只是說覺得這樣一個簡單的print模擬需求
需要動用到這麼多行程式碼 有沒有比較精簡的寫法
當然記憶體問題也得考慮 不然stackoverfollow的解法 應該是最快最簡單的了
※ 編輯: erspicu 來自: 111.184.196.83 (05/25 21:51)
→
05/25 22:02, , 5F
05/25 22:02, 5F