作者aquatear (米蟲)
看板AndroidDev
標題Re: [問題] 請問外部檔案安裝
時間Wed Jul 11 01:42:39 2012
感謝您的解答喔 ~~ 非常詳盡 !! 讚讚讚
我也是用檢查檔案的方式看看要不要 copy,
不過這樣就沒辦法分辨檔案新舊...
如果外部檔案被程式設計師更新後, 使用者再去裝 apk,
但是 sdcard 存在之前舊的外部檔案
這樣就會造成更新上的問題了~~
不知道有沒有好的解法...
主要的問題還是不想讓使用者自己手動
copy 外部檔到 sdcard...(應該沒有一個 app 是這樣做)
因為程式本身會讀取絕對路徑, 也就是一個 String path,
所以 InputStream 他是不吃的, 這邊不能改的原因,
是因為那個路徑是透過 jni 傳到底層去的, 不是在 java 上層處理的資料,
所以只能讀取絕對路徑~~
好怪阿 ~~ 那些 game 到底是怎麼寫的呢 > <
應該都會有資料檔存在 sdcard 的吧~ 還是都不用更新這樣 > <
整包 apk update ?
※ 引述《MiaShopgirl ( )》之銘言:
: 恕刪..
: : → MiaShopgirl:onCreate的時候確認SD路徑下沒有要用的檔案的時候, 07/06 13:19
: : → MiaShopgirl:把檔案放在assets裡面,再copy到SD 吧..? 07/06 13:20
: : → MiaShopgirl:or直接存取assets,就不用再複製到SD 07/06 17:27
: : → aquatear:恩, 目前是用拷貝的方式進 sdcard, 不過這樣會有更新的問 07/07 21:46
: : → aquatear:題, 變成每次啟動都會 copy 一次,因為程式只能讀取檔案 07/07 21:47
: 如果要避開「每次啟動都會 copy 一次」,
: 可以檢查檔案是否存在再決定要不要複製檔案..
: File file=
: new File(Environment.getExternalStorageDirectory(), "yourFileName.here");
: if(!file.exists()){
: /**copy file method**/
: //copying file to externalStorage..
: }else{
: /**file existed, no need to copy file**/
: }
: : → aquatear:路徑, assets 似乎沒辦法提供真正的檔案路徑來存取,還是 07/07 21:47
: : → aquatear:有辦法 ? 07/07 21:47
: 把檔案放在assets下存取,
: InputStream is = getAssets().open("yourFileName.here");
: 專案目錄結構:
: YourProjectName\
: assets\yourFileName.here
: bin\
: gen\
: libs\
: res\
: src\
: AndroidManifest.xml
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.180.61.244
推 gpc:PM拿一下versionCode跟signature比一下就好了... 07/11 10:17
→ gpc:另外jni裡面可以做所有JAVA能夠做的事情 包括來到相對路徑 07/11 10:19