『壹』 android 能否使用大數據
暈,使用大數據跟內存大小手機配置什麼的有什麼關系。。。看你怎麼理解「使用大數據」吧,把android手機系統作為大數據系統的一部分,收集數據或者使用大數據的分析結果提供服務都是可以的,但是你要直接用android作為大數據的存儲和分析系統,基本上就是比較難的了
『貳』 android 怎麼讀取大數據
Android讀取Excel文件主要有jxl和Poi兩種方法。
1.JXL
只支持2003版本的excel,即xls的文件。
當文件大於5萬行的內時候,會出現OOM錯誤。
2.Poi
比較容流行的一套office開源代碼。
可以讀取2003和2007版本的excel。
但問題是,引用的Jar包太多。
會引發Android著名的65K(65536)錯誤。
當然現在在Stuido中有解決65K的方法了。
有待嘗試。
*3.國內的橄欖辦公office
讀取大的excel文件會卡。。。
這還是官方的app。
『叄』 在Android中兩個進程之間傳輸大數據,可以使用什麼方式實現
1、可以用AIDL調遠程服來務源
2、本地TCP或UDP
3、端-本地-端,利用緩存(很慢)
在不觸發內存溢出或者是應用無響應的前提下,還是前兩種方式靠譜一點,可以另外開個線程進行本地大數據的交換.
可以參考下網上關於AIDL的知識,用AIDL完全可以實現你要的功能;
如果不嫌棄麻煩,用上內容提供者也是可以的。
希望對你有所幫助。
-
『肆』 android ListView 每個item載入大量的文本滑動會出現內存溢出咋辦咋辦
這個設計到listview優化問題。
首先,listview必須嚴格按照convertView及viewHolder格式書寫,這樣可以基本保證數據最優。
其次,如果自定義Item中有涉及到圖片等等的,一定要做圖片優化。bitmap釋放可以不做。
第三,盡量避免在BaseAdapter中使用static 來定義全局靜態變數,這個影響很大,static是Java中的一個關鍵字,當用它來修飾成員變數時,那麼該變數就屬於該類,而不是該類的實例。所以用static修飾的變數,它的生命周期是很長的,如果用它來引用一些資源耗費過多的實例(比如Context的情況最多),這時就要盡量避免使用了..
第四,盡量避免在ListView適配器中使用線程,因為線程產生內存泄露的主要原因在於線程生命周期的不可控制。
最後,如果上述你都做到的話,你的listview已經優化的很好了。針對你的問題,你的listview控制項高度是否設置為fill_parent,因為warp會導致listview滑動中無限計算自身高度。你的文本載入是否做過線程以及多次重復載入的問題處理。你的item中變數是否多次無限生成新的內存對象等等。
『伍』 Android 接收大量數據如何避免頻繁GC
GC會stop the world。會暫停程序的執行,帶來延遲的代價。所以在開發中,我們不希望GC的次數過多。
本文將討論如何在開發中改善各種細節,從而減少GC的次數。
(1)對象不用時最好顯式置為 Null
一般而言,為 Null 的對象都會被作為垃圾處理,所以將不用的對象顯式地設
為 Null,有利於 GC 收集器判定垃圾,從而提高了 GC 的效率。
(2)盡量少用 System.gc()
此函數建議 JVM進行主 GC,雖然只是建議而非一定,但很多情況下它會觸發
主 GC,從而增加主 GC 的頻率,也即增加了間歇性停頓的次數。
(3)盡量少用靜態變數
靜態變數屬於全局變數,不會被 GC 回收,它們會一直佔用內存。
(4)盡量使用 StringBuffer,而不用 String 來累加字元串
由於 String 是固定長的字元串對象,累加 String 對象時,並非在一個 String對象中擴增,而是重新創建新的 String 對象,如 Str5=Str1+Str2+Str3+Str4,這條語句執行過程中會產生多個垃圾對象,因為對次作「+」操作時都必須創建新的 String 對象,但這些過渡對象對系統來說是沒有實際意義的,只會增加更多的垃圾。 避免這種情況可以改用 StringBuffer 來累加字元串,因 StringBuffer是可變長的,它在原有基礎上進行擴增,不會產生中間對象
(5)分散對象創建或刪除的時間
集中在短時間內大量創建新對象,特別是大對象,會導致突然需要大量內存,JVM 在面臨這種情況時,只能進行主 GC,以回收內存或整合內存碎片,從而增加主 GC 的頻率。
集中刪除對象,道理也是一樣的。 它使得突然出現了大量的垃圾對象,空閑空間必然減少,從而大大增加了下一次創建新對象時強制主 GC 的機會。
(6) 盡量少用 finalize 函數
因為它會加大 GC 的工作量, 因此盡量少用finalize 方式回收資源。
(7) 使用軟引用類型
如果需要使用經常用到的圖片, 可以使用軟引用類型, 它可以盡可能將圖片保存在內存中, 供程序調用, 而不引起 OutOfMemory。
『陸』 android 載入大量圖片速度慢是什麼原因,是訪問sd卡慢,還是使用bitmap的時候慢
android 載入大量圖片速度慢原因一般是訪問sd卡慢,SD卡讀取速度較慢造成的載入文件速度慢。
載入,漢語詞語,字面意思是增加裝載量。現多用於計算機相關領域,表示啟動程序時文件或信息的載入。
點陣圖文件(Bitmap),擴展名可以是.bmp或者.dib。點陣圖是Windows標准格式圖形文件,它將圖像定義為由點(像素)組成,每個點可以由多種色彩表示,包括2、4、8、16、24和32位色彩。例如,一幅1024×768解析度的32位真彩圖片,其所佔存儲位元組數為:1024×768×32/8=3072KB
點陣圖文件圖像效果好,但是非壓縮格式的,需要佔用較大存儲空間,不利於在網路上傳送。jpg格式則恰好彌補了點陣圖文件這個缺點。
『柒』 android intent跳轉怎樣傳輸大數據
在Activity或者組件之前傳遞信息時,一般採用intent綁定bundle的方式傳值,但在使用過程中需要注意的是不要用bundle傳遞大容量數據:
在做項目的過程中,需要將聽寫界面的聽寫結果信息傳遞到聽寫記錄界面供顯示用,但是由於傳遞的數據量過大導致程序ANR,甚至直接報異常(傳遞的信息裡面有bitmap轉換成的byte數組、每一個片語的拼音、詞語、語音信息),經過分析發現是由於bundle不能傳遞大容量的數據信息,在stackoverflow裡面查閱發現有同行遇到類似的問題:
(1)「The size limit of Intent is still pretty low in Jelly Bean, which is somewhat lower than 1MB (around 90K), so you should always be cautious about your data length, even if your application targets only latest Android versions.」
(2)「As per my experience (sometime ago), you are able to put up to 1MB of data in a Bundleencapsulated inside Intent. I think, this restriction was valid up till Froyo or GingerBread.」
所以在通過bundle傳遞數據時只能傳遞較小的數據信息,對於在不同組件之間需要傳遞大容量數據的情況時,有幾種替代方式可以解決不能用bundle傳遞這些數據的問題:
方法一:將需要傳遞的數據寫在臨時文件或者資料庫中,再跳轉到另外一個組件的時候再去讀取這些數據信息,這種處理方式會由於讀寫文件較為耗時導致程序運行效率較低;
方法二:將需要傳遞的數據信息封裝在一個靜態的類中(注意當前組件和要跳轉到的組件必須屬於同一個進程,因為進程之間才能夠共享數據),在當前組件中為類設置內容,然後再跳轉到的組件中去取,這種處理方式效率很高,但是會破壞程序的獨立性。
具體採用哪種替代方式取決於具體的情況,本人建議採取第二種處理方式,因為這樣會大大提高程序的運行效率,至於程序的獨立性,看你怎麼去封裝這個類了。
『捌』 android 分頁列表,可以上下刷新,大數據時如何處理
大數據處理的方法為:
1、自己重寫adapter,然後根據得到的屏幕大小和列表子項大小,專動屬態顯示固定數量的列表子項。
2、在列表子項的VIEW上進行手勢識別(估計已經不能對整個屏幕進行手勢識別了),只要某個子項收到滑動動作,就換屏(上下動作可識別),然後動態載入新的列表數據。
3、可以一次獲取3X個子項,即屏幕只顯示X個,但內存里把當前X個列表子項和上、下X個子項全緩存起來,這樣滑屏會快些。
『玖』 android 客戶端接收的數據量過大(幾萬條數據)就會拋異常如何處理
正常,客戶端內存有限,數據過多導致內存溢出。
一般做法是分頁,20條一頁(再多客戶端屏幕也顯示不出來),然後翻頁的時候再載入。
可以參考下網易新聞或者新浪微博客戶端
『拾』 android 介面滿且數據量大怎麼優化
我覺得數據很大的時候需要把數據 拆分,比如 只顯示 數據的標題和時間,數據其他信息可以 點擊後載入,把一個大數據拆分成2個表存儲,或者2次請求顯示。