『壹』 android開發!raw文件夾太大怎麼辦啊啊啊啊。。。。
有時候真的不喜歡你們這些做巨大apk的人……
下載又麻煩安裝又麻煩還佔地方……版
要是權上傳google,還得分成兩次下載,一旦用戶拒絕下載資源,就不能使用了……
1、根據你的敘述,這個情況應該只是虛擬機設置不當的原因,虛擬機內存或儲存空間太小的緣故,可以自行網路虛擬機設置;
2、聽說有些資源應該放在assets文件中,可能是這個原因;
3、如果是音頻文件可以用一些軟體壓縮一下,讓他們不佔那麼多地方;
4、其實很多游戲會把重量級的放在他們的伺服器上,讓游戲使用前自動下載;
5、Android分配給一個apk的運行空間是有限的,如果載入一個文件太大會溢出報錯,是不是考慮把大文件分成小文件,在一個文件使用完之後再載入另一個,保持內存總量不會被佔用太多;
6、apk資源先存儲在SD卡上,讓apk需要時去指定路徑下需要再使用吧;
7、其他……
『貳』 相機中的RAW是什麼意思
什麼是raw格式的數碼照片?
raw格式相當於數碼底片,ccd感光的原始數據數據,對於300萬像素的數碼相機,一個raw文件保存了300萬個點的感光數據。嚴格來說,一個raw文件還不是一張照片,因為還必須提供相應的參數,比如色溫(白平衡),銳度,對比度,經過相機內的軟體處理,才能成為一張照片。一般來說,一個raw文件包含以下信息,ccd的感光數據,拍攝時相機設置的參數。所以raw格式的圖片幾乎是保持了一張照片的原始風貌,沒有經過什麼壓縮的處理。
我們在處理raw文件的時候和其他的格式有什麼不同?
在電腦上對raw文件進行處理,實際上相當於相機本身處理拍攝出來的原始圖像,如果把這個過程看成「感光元件感光」+「各種參數處理」=「照片」。而raw我們可以看做是感光元件感光的原始信號文件,在電腦上是做合成各種參數的處理過程。這樣我想就清楚了,而其他格式的圖片,都已經是最終的「照片」了,像JPG、TIFF這些都是一樣的。
既然RAW文件是原始未壓縮的文件,那麼為什麼還比TIFF這樣的壓縮文件還小呢?
傳統CCD每個像素只能感光一種顏色,根據感光的強度不同轉換成不同的數字,不同的ccd這一數字范圍是不同的,早期的8bit,到現在的10bit,12bit。8bit就是一個點感光從最暗到最亮分為256個層次,10bit就是1024個層次,以此類推。假設300萬像素每個像素包含10bit的數字信息,那麼它的未壓縮的raw文件大小
3,000,000 * 10bit = 30,000,000 bit = 3,750,000byte = 3662.1K = 3.58M
一般相機還會對raw文件進行壓縮,是類似zip的無損壓縮演算法,文件還會更小一些。
Tif是包含真彩色圖片文件,所謂真彩色指每個點都包含24bit彩色信息,其中紅(R),綠(G),藍(B)各8bit,這樣一個不壓縮的300萬像素tif文件的大小是
3,000,000 * 24bit = 9,000,000byte = 3662.1K = 8.58M
『叄』 Android問題之res/raw和assets的區別及文件大小限制
1.讀取res/raw下的文件資源,通過以下方式獲取輸入流來進行寫操作
[java] view plain
InputStream is = getResources().openRawResource(R.id.filename);
2.讀取assets下的文件資內源,通過以下方式獲取容輸入流來進行寫操作
[java] view plain
AssetManager am = null;
am = getAssets();
InputStream is = am.open("filename");
補充一下:在未知目錄下有哪些文件,該去和獲取這些文件的名稱並把文件拷貝到目標目錄中呢?(用於內置文件但不知道文件名稱,需要篩選出想要的文件然後拷貝到目標目錄中,推薦內置在assets文件夾中)
『肆』 Android 里 raw和assets 文件夾的區別
android raw與assets區別 *res/raw和assets的相同點: 1.兩者目錄下的文件在打包後會原封不動的保存在apk包中,不會被編譯成二進制。 *res/raw和assets的不同點: 1.res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;assets文件夾下的文件不會被映射到R.java中,訪問的時候需要AssetManager類。 2.res/raw不可以有目錄結構,而assets則可以有目錄結構,也就是assets目錄下可以再建立文件夾 *讀取文件資源: 1.讀取res/raw下的文件資源,通過以下方式獲取輸入流來進行寫操作 InputStream is = getResources().openRawResource(R.id.filename); 2.(1)讀取assets下的文件資源,通過以下方式獲取輸入流來進行寫操作 AssetManager am = null; am = getAssets(); InputStream is = am.open("filename"); (2)如果用Videoview來播放: VideoView.setVideoUri(Uri.parse("android.resource://" + getpackageName() + "/" + R.raw.movie));
『伍』 android raw放什麼文件
raw屬於隱藏文件夾,他放的是圖片、音樂等資源(可以直接復制到設備中,不會被編譯,並且不會被自動壓縮,他會在R.java中生成對應的唯一ID);它區別於assets文件夾,assets文件夾用於存放需要打包到應用程序的靜態文件,給文件夾下的文件不會被影射到R.java中(即不會生成對應的id)
『陸』 Android問題之res/raw和assets的區別及文件大小限制
1.assets:可以存放項目一些較大的資源文件,例如:圖片、音樂、字體等。2.res:可以存放項版目中所有的資源文權件,例如:圖片(*.png、*.jpg)、文本等。3.res/drawable-hdpi:保存高解析度圖片資源,可以使用Resources.getDrawable(id)可以獲得資源類型。4.res/drawable-ldpi:保存低分辯率圖片資源,可以使用Resources.getDrawable(id)可以獲得資源類型。5.res/drawable-mdpi:保存中等解析度圖片資源,可以使用Resources.getDrawable(id)可以獲得資源類型。6.res/layout:存放所有的布局文件,主要是用於排列不同的顯示組件,在Android程序中要讀取此配置。7.res/values:存放一些資源文件的信息,用於讀取文本資源,在本文件夾之中有一些約定的文件名稱:
『柒』 android中 R.raw.big怎麼創建文件
打開eclipse,找到你的工程,在res文件夾下創建raw文件夾,之後,將視頻或者音頻文件回拷貝答到raw文件夾中,在程序中引用的時候就可以寫成R.raw.xxx(xxx:視頻或音頻的名稱)
之後你可以查看一下gen 文件夾下得 R.java中是否存在 raw xxx的ID,存在了說明可以在程序中引用了,不存在將上面步驟重來一次!
建議:最好是找個小一點的視頻文件,不然啟動程序會比較慢,因為啟動程序時,eclipse會把視頻文件與程序打包,一起上傳到android模擬器的sdcard中,文件太大上傳會比較慢,所以測試程序時,用個小視頻文件就好!
『捌』 Android中assets目錄和raw目錄的區別和使用情況
今天看到有人問Android中assets目錄和raw目錄的區別和使用情況。
能提出這個問題的,應該都了解它們的共同點:
它們會被原封不動的拷貝到APK中,而不會像其它資源文件那樣被編譯成二進制的形式。
要說區別,當然最直觀的就是獲取它們的InputStream的API不一樣了。
assets:InputStream assets = getAssets().open("xxxx");
raw:InputStream raw = getResources().openRawResource(R.raw.xxxx)
有人可能會有疑問,既然它們都是被原封不動的拷貝到APK中,而assets可以創建目錄結構,又能夠動態的列出assets中的所有資源getAssets().list(String path);,這些raw都做不到,那raw還有什麼用呢?
下面我們來說說它們主要的區別:
由 於raw是Resources (res)的子目錄,Android會自動的為這目錄中的所有資源文件生成一個ID,這個ID會被存儲在R類當中,作為一個文件的引用。這意味著這個資源 文件可以很容易的被Android的類和方法訪問到,甚至在Android XML文件中你也可以@raw/的形式引用到它。在Android中,使用ID是訪問一個文件最快捷的方式。MP3和Ogg文件放在這個目錄下是比較合適 的。
assets目錄更像一個附錄類型的目錄,Android不會為這個目錄中的文件生成ID並保存在R類當中,因此它與 Android中的一些類和方法兼容度更低。同時,由於你需要一個字元串路徑來獲取這個目錄下的文件描述符,訪問的速度會更慢。但是把一些文件放在這個目 錄下會使一些操作更加方便,比方說拷貝一個資料庫文件到系統內存中。要注意的是,你無法在Android XML文件中引用到assets目錄下的文件,只能通過AssetManager來訪問這些文件。資料庫文件和游戲數據等放在這個目錄下是比較合適的。
另 外,網上關於assets和raw的資料都千篇一律了,因此關於這兩者中單個文件大小不能超過1M的**錯誤**描述也在傳播,即如果讀取超過1M的文件 會報"Data exceeds UNCOMPRESS_DATA_MAX (1314625 vs 1048576)"的IOException,還引申出種種解決方案。個人認為不應該有這樣的限制,為了驗證這個說法寫了個Demo,發現將近5M的壓縮 包在assets和raw中都能正常訪問,因此在這里糾正一下,理論上只要打包不超過Android APK 50M大小的限制都是沒有問題的。當然了,不排除是Android很早期的時候因為設備硬體原因aapt在編譯的時候對這兩個文件夾大小做出了限制,如果 是這樣,較新版的ADT應該不會出現這種情況。
更新:為了驗證我最後一段的描述,避免導致結果誤 導,晚上寫了幾個小Demo驗證之後又花了點時間查閱了一些資料,最後找到這篇文章http://ponystyle.com/blog/2010/03 /26/dealing-with-asset-compression-in-android-apps/ ,文章比較簡單清晰,我就不翻譯了。這篇文章應該還蠻有說服力的,從根本上說明了當時Android2.3以前產生資源文件單個文件大小不能超過1M的原 因和部分解決方法。不過由於限制是當時的aapt決定的,現在已經更新了多個版本的aapt已經不存在這種問題了,也印證了我最後一段的猜想。
『玖』 一張RAW格式圖像文件有多大
raw圖像格式:擴展名是raw。raw是一種無損壓縮格式,它的數據是沒有經過相機處理的原文件,因此它的大小要比tiff格式略小。所以,當上傳到電腦之後,要用圖像軟體的twain界面直接導入成tiff格式才能處理。
『拾』 android 怎麼樣的資源要放在assets
「 2.3以前的任何壓縮資源的原始大小超過1M將不能從APK中讀出~
」
也就是說放在assets下的各個文件的大小要小於1M才可以。
Android 對asset與raw的限制
在讀取這兩個資源文件夾中的文件時會有一定的限制,即單個文件大小不能超過1M
,如果讀取超過1M的文件會報 "Data exceeds UNCOMPRESS_DATA_MAX
(1314625 vs 1048576)" 的IOException。