當前位置:首頁 » 安卓系統 » android資料庫apk

android資料庫apk

發布時間: 2022-06-06 02:52:52

『壹』 如何Android資料庫緩存進行管理

無論大型或小型應用,靈活的緩存可以說不僅大大減輕了伺服器的壓力,而且因為更快速的用戶體驗而方便了用戶。
Android的apk可以說是作為小型應用,其中99%的應用並不是需要實時更新的,而且詬病於蝸牛般的移動網速,與伺服器的數據交互是能少則少,這樣用戶體驗才更好,這也是我們有時舍棄webview而採用json傳輸數據的原因之一。
採用緩存,可以進一步大大緩解數據交互的壓力,特此,我們簡略列舉一下緩存管理的適用環境:
1. 提供網路服務的應用
2. 數據更新不需要實時更新,但是哪怕是3-5分鍾的延遲也是可以採用緩存機制。
3. 緩存的過期時間是可以接受的(不會因為緩存帶來的好處,導致某些數據因為更新不及時而影響產品的形象等)
帶來的好處:
1. 伺服器的壓力大大減小
2. 客戶端的響應速度大大變快(用戶體驗)
3. 客戶端的數據載入出錯情況大大較少,大大提高了應有的穩定性(用戶體驗)
4. 一定程度上可以支持離線瀏覽(或者說為離線瀏覽提供了技術支持)
一、緩存管理的方法
這里的緩存管理的原理很簡:通過時間的設置來判斷是否讀取緩存還是重新下載。
裡面會有一些細節的處理,後面會詳細闡述。
基於這個原理,目前鄙人見過的兩種比較常見的緩存管理方法是:資料庫法和文件法。
二、資料庫法緩存管理
這種方法是在下載完數據文件後,把文件的相關信息如url,路經,下載時間,過期時間等存放到資料庫,下次下載的時候根據url先從資料庫中查詢,如果查詢到當前時間並未過期,就根據路徑讀取本地文件,從而實現緩存的效果。
從實現上我們可以看到這種方法可以靈活存放文件的屬性,進而提供了很大的擴展性,可以為其它的功能提供一定的支持;
從操作上需要創建資料庫,每次查詢資料庫,如果過期還需要更新資料庫,清理緩存的時候還需要刪除資料庫數據,稍顯麻煩,而資料庫操作不當又容易出現一系列的性能,ANR問題,實現的時候要謹慎,具體作的話,但也只是增加一個工具類或方法的事情。
還有一個問題,緩存的資料庫是存放在/data/data/<package>/databases/目錄下,是佔用內存空間的,如果緩存累計,容易浪費內存,需要及時清理緩存。
當然這種方法從目前一些應用的實用上看,我沒有發現什麼問題。
本文我側重強調第二種方法,第一種方法的實現,就此掠過。
三、文件法緩存管理
這種方法,使用File.lastModified()方法得到文件的最後修改時間,與當前時間判斷是否過期,從而實現緩存效果。
實現上只能使用這一個屬性,沒有為其它的功能提供技術支持的可能。
操作上倒是簡單,比較時間即可。本身處理也不容易帶來其它問題,代價低廉。
四、文件法緩存管理的兩點說明
1. 不同類型的文件的緩存時間不一樣。
籠統的說,不變文件的緩存時間是永久,變化文件的緩存時間是最大忍受不變時間。
說白點,圖片文件內容是不變的,直到清理,我們是可以永遠讀取緩存的。
配置文件內容是可能更新的,需要設置一個可接受的緩存時間。
2. 不同環境下的緩存時間標准不一樣。
無網路環境下,我們只能讀取緩存文件,哪怕緩存早就過期。
WiFi網路環境下,緩存時間可以設置短一點,一是網速較快,而是流量不要錢。
移動數據流量環境下,緩存時間可以設置長一點,節省流量,就是節省金錢,而且用戶體驗也更好。
舉個例子吧,最近本人在做的一個應用在wifi環境下的緩存時間設置為5分鍾,移動數據流量下的緩存時間設置為1小時。
這個時間根據自己的實際情況來設置:數據的更新頻率,數據的重要性等。
五、何時刷新
開發者一方面希望盡量讀取緩存,用戶一方面希望實時刷新,但是成都網站製作響應速度越快越好,流量消耗越少越好,是一個矛盾。
其實何時刷新我也不知道,這里我提供兩點建議:
1. 數據的最長多長時間不變,對應用無大的影響。
比如,你的數據更新時間為1天,則緩存時間設置為4~8小時比較合適,一天他總會看到更新,如果你覺得你是資訊類應用,再減少,2~4小時,如果你覺得數據比較重要或者比較受歡迎,用戶會經常把玩,再減少,1~2小時,依次類推。
為了保險起見,你可能需要毫無理由的再次縮減一下。
2. 提供刷新按鈕。
上面說的保險起見不一定保險,最保險的方法使在相關界面提供一個刷新按鈕,為緩存,為載入失敗提供一次重新來過的機會,有了這個刷新按鈕,我們的心也才真的放下來。

『貳』 Android Studio如何將資料庫文件打包到apk中,APP安裝後能使用提前准備好的.db文件,大神們幫幫忙,謝謝!

提供一種最簡單的思路吧,把db文件放到assets目錄下,運行檢測是否已經拷貝到指定目錄,沒有就把文件拷貝過去,在讀去資料庫就可以了

『叄』 Android 資料庫文件怎樣跟apk一起發布

可以將XX.db文件復制到Eclipse Android工程中的res\raw目錄中。所有在res\raw目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件。

使用openDatabase方法來打開資料庫文件,如果該文件不存在,系統會自動創建/sdcard/dictionary目錄,並將res\raw目錄中的 XX.db文件復制到/sdcard/dictionary目錄中。openDatabase方法的實現代碼如下:這里以dictionary.db為例

[java] view plainprint?
01.private sqliteDatabase openDatabase()
02. {
03. try
04. {
05. // 獲得dictionary.db文件的絕對路徑
06. String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
07. File dir = new File(DATABASE_PATH);
08. // 如果/sdcard/dictionary目錄中存在,創建這個目錄
09. if (!dir.exists())
10. dir.mkdir();
11. // 如果在/sdcard/dictionary目錄中不存在
12. // dictionary.db文件,則從res\raw目錄中復制這個文件到
13. // SD卡的目錄(/sdcard/dictionary)
14. if (!(new File(databaseFilename)).exists())
15. {
16. // 獲得封裝dictionary.db文件的InputStream對象
17. InputStream is = getResources().openRawResource(R.raw.dictionary);
18. FileOutputStream fos = new FileOutputStream(databaseFilename);
19. byte[] buffer = new byte[8192];
20. int count = 0;
21. // 開始復制dictionary.db文件
22. while ((count = is.read(buffer)) > 0)
23. {
24. fos.write(buffer, 0, count);
25. }
26.
27. fos.close();
28. is.close();
29. }
30. // 打開/sdcard/dictionary目錄中的dictionary.db文件
31. SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
32. databaseFilename, null);
33. return database;
34. }
35. catch (Exception e)
36. {
37. }
38. return null;
39. }
private SQLiteDatabase openDatabase()
{
try
{
// 獲得dictionary.db文件的絕對路徑
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
// 如果/sdcard/dictionary目錄中存在,創建這個目錄
if (!dir.exists())
dir.mkdir();
// 如果在/sdcard/dictionary目錄中不存在
// dictionary.db文件,則從res\raw目錄中復制這個文件到
// SD卡的目錄(/sdcard/dictionary)
if (!(new File(databaseFilename)).exists())
{
// 獲得封裝dictionary.db文件的InputStream對象
InputStream is = getResources().openRawResource(R.raw.dictionary);
FileOutputStream fos = new FileOutputStream(databaseFilename);
byte[] buffer = new byte[8192];
int count = 0;
// 開始復制dictionary.db文件
while ((count = is.read(buffer)) > 0)
{
fos.write(buffer, 0, count);
}

fos.close();
is.close();
}
// 打開/sdcard/dictionary目錄中的dictionary.db文件
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
databaseFilename, null);
return database;
}
catch (Exception e)
{
}
return null;
}

在openDatabase方法中使用了幾個常量,這些常量是在程序的主類(Main)中定義的,代碼如下:

[java] view plainprint?
01.public class Main extends Activity implements OnClickListener, TextWatcher
02.{
03. private final String DATABASE_PATH = android.os.Environment
04. .getExternalStorageDirectory().getAbsolutePath()
05. + "/dictionary";
06. private final String DATABASE_FILENAME = "dictionary.db";
07.}

『肆』 android 如何把資料庫打包進apk

資料庫 放到res 的raw 中就自動打包進去啦。

『伍』 Android 的apk在覆蓋安裝的時如何重新讀取sqlite資料庫

覆蓋安裝貌似不會刪掉資料庫吧

『陸』 如何將Android的資料庫打包到APK里

sdk不能直接打開res\raw目錄中的資料庫文件,不過我們可以通過將這個文件復制到手機內存或sd卡上來訪問。復制的方法也很簡單,就是在程序第一次啟動時判斷要復制的目標路徑是否存在該資料庫文件,如果不存在該資料庫文件,那先復制這個文件,然後再打開資料庫文件。
復制資料庫文件可以通過getresources().openrawresource方法獲得res\raw目錄中資源的inputstream對象,然後將該inputstream對象中的數據寫入其他的目錄中相應文件中。打開資料庫可以使用sqlitedatabase.openorcreatedatabase方法來打開sqlite資料庫文件。openorcreatedatabase方法可以打開任意目錄下的資料庫文件。

『柒』 安卓游戲數據包和apk是什麼意思

你好,APK是AndroidPackage的縮寫,即Android安裝包。大部分游戲和軟體都是通過APK安裝而成。但是部分游戲因為體積過大,如果用APK形式安裝,會由於手機運存不夠,會產生安裝失敗的情況,所以發展出數據包形式。即數據包為外掛到手機內存或者SD卡的較大體積的資源,而玩家只需要安裝相對較小的主程序APK即可。
數據包游戲需要將數據包放到指定的路徑地址,才能被主程序給識別出來。所以對於數據包游戲的下載與安裝,建議您使用當樂游戲中心,當樂游戲中心不僅擁有海量的游戲,而且對於數據包游戲可以一鍵安裝,不需要您進行其他多餘的操作即可進行游戲,下載地址為:http://app.d.cn/
感謝您對於當樂網的支持,當樂網有您更精彩,祝您游戲愉快。

『捌』 android模擬器可以連接資料庫,打包成APK裝入手機,就沒辦法保存數據了

搜一下:android模擬器可以連接資料庫,打包成APK裝入手機,就沒辦法保存數據了

『玖』 android 開發 怎樣使用apk讀取資料庫db裡面的內容

final SimpleAdapter adapter = new SimpleAdapter(this, getData(), R.layout.mainlayout, new String[] { "text", "time", "image" }, new int[] { R.id.PL_TextView01, R.id.PL_TextView02, R.id.PL_ImageView01 }); lv.setAdapter(adapter);...

熱點內容
c語言大學教程第六版 發布:2025-05-19 16:04:21 瀏覽:740
androidvr播放器 發布:2025-05-19 15:55:32 瀏覽:964
我的世界pc如何創建伺服器 發布:2025-05-19 15:51:24 瀏覽:733
搶腳本 發布:2025-05-19 15:47:14 瀏覽:406
ct4哪個配置性價比最高 發布:2025-05-19 15:38:02 瀏覽:953
如何設置強緩存的失效時間 發布:2025-05-19 15:21:28 瀏覽:695
winxp無法訪問 發布:2025-05-19 15:19:48 瀏覽:947
文件預編譯 發布:2025-05-19 15:14:04 瀏覽:643
怎麼在伺服器上掛公網 發布:2025-05-19 15:14:02 瀏覽:272
濟南平安e通如何找回密碼 發布:2025-05-19 14:56:58 瀏覽:176