Android :: Provide A Database Packaged With .APK File Or Host It Separately On A Website?
Oct 29, 2009
Here is some background about my app:
I am developing an Android app that will display a random quote or verse to the user. For this I am using an SQLite database. The size of the DB would be approximately 5K to 10K records, possibly increasing to upto 1M in later versions as new quotes and verses are added. Thus the user would need to update the DB as and when newer versions are of the app or DB are released.
After reading through some forums online, there seem to be two feasible ways I could provide the DB: 1. Bundle it along with the .APK file of the app, or 2. Upload it to my app's website from where users will have to download it
I want to know which method would be better (if there is yet another approach other than these, please do let me know).
After pondering this problem for some time, I have these thoughts regarding the above approaches:
Approach 1: Users will obtain the DB along with the app, and won't have to download it separately. Installation would thereby be easier. But, users will have to reinstall the app every time there is a new version of the DB. Also, if the DB is large, it will make the installable too cumbersome.
Approach 2: Users will have to download the full DB from the website (although I can provide a small, sample version of the DB via Approach 1). But, the installer will be simpler and smaller in size. Also, I would be able to provide future versions of the DB easily for those who might not want newer versions of the app.
The idea is to allow developers to access a remote database provided by google.In android the developer will need a special permission to be set at the manifest file.This could allow applications to keep a backup of users application data without having to sign in ever, seamless.Users could than sign-in to their gmail and see a list of applications that are currently storing data on their gmail space.The user could be allowed to wipe the data or even block the application from storing data to it.This idea make the most sense since Android will be a platform were users will be constantly changing android phones as new better ones come out.
Good morning everyone, I am new to programming with Java and Android, I'm trying to make an application to seek an xml in a web address and contains information that should be saved in my sql lite ... The doubt is as follows: I have to download and save the xml file on the device or can just work with it in memory, example: xml = xml.create (www.meusite.com.br / meuxml.xml); how would you do?
I was wondering if anyone has ever been able to distribute their app in a bundle with an emulator?
The reason I want to do this is that I have some friends who don't have android phones, but I'd like them to be able to play with my app so that they can give me feedback. I've previously sent them screen casts, but I'd really like them to be able to get interactive with the app.
Now I could ask them to get all installed with the whole android framework, eclipse etc,. but some of them are not so technical. Ideally what I'd like to be able to do is create a package that is the android emulator with my app and perhaps 1 or 2 other related apps pre- installed, so that they can download it, open it and run it interactively on their computers?
Has anyone ever tried this?
So far I found that I can run the emulator standalone, and I assume I could probably send them just that and it would run. However the adb tool is needed to install apps. I could send them that too, and ask the to run an 'adb install myapp.apk' from the command line, but at the moment I can't even seem to do that myself.
Running the emulator standalone, the adb tool can't seem to see it:
samuel-josephs-computer-2:tools samueljoseph$ sudo ./adb devices List of devices attached
I just get no list of devices ...
I have previously used the adb tool to install apk files, but that is after I had started the emulator from eclipse - of course even then I always have to restart eclipse and the emulator two or three times before I can get the connection (I am on OSX 10.5.6., eclipse 3.4.1) ...
Just wondering what would be the best way to grab the following data and parse it.Here's an example of some the data I want to pull. <?xml version="1.0" encoding="UTF-8" ?> <eveapi version="2"> <currentTime>2010-11-19 19:23:44</currentTime> <result> <rowset name="characters" key="characterID" columns="name,characterID,corporationName,corporationID"> <row name="jennyhills" characterID="90052591" corporationName="Imperial Academy" corporationID="1000166" /> </rowset> </result> <cachedUntil>2010-11-19 20:20:44</cachedUntil> </eveapi> I've seen some examples on how to parse XML data but they are all based on if statements and that's a lot of hard coding is there a more genertic way to do this?
I have an application which is based Android 1.5 but for enabling different screen types support I have to compile and package it with v1.6. When I install and run the resulted APK on my 1.5 emulator, everything works fine except that "Preferences" activity crashes every time I launch it!
When I revert back my API dependency to 1.5 and remove a few 1.6 specific config blocks from AndroidManifest.xml and compile/package it with 1.5, everything works just fine!
I need to somehow backup my applitcations database to a file so that it can later be retored using that file. The only way I would do it would be by reading every table to an xml ffile but it seems soo ineficient. The data does not have to be humand readable.
Is it possible to take a csv file stored in the res/raw resource directory and use it to populate a table in the sqlite3 database? My thought was that, if there was a way to do a bulk import for the entire file into the table then that would be cleaner and faster than iterating over each line in the file and executing individual insert statements...
but I'm having trouble applying those statements in my Android application. My first thought was to try something like the following...but no luck:
Using Local XML file as a database for a android app?
I am trying to build a app with flash using a xml file as database, to read the xml from a external file from the local directory isn't a problem, the problem is how to write data from flash to the xml file.
I'm trying to develop a coloring app... while developing it ....i was stuck with a problem..Im using layout to display "images". The problem is that the images get overlapped...
for example i have arranged the images as ...the second image inside the first image.... if i color the second image, the first image also gets colored...similarly if i color the first image , the second one also gets colored....the images are overlapped....
how to color each image separately ? and how to prevent overlapping of two images?
Is it possible to choose a custom location for the sqlite database file? If possible I want to store the database file in the memory card. And if user switches from one memory card to the other I want my application to use whatever version of the database file available on the card.
Im doing an app which uses sqlite db file in assets folder, There is a screen in my app having a button 'check for update'. Client has given me an URL link to update db file(which gives a sqlite file). When user clicks on the button i need to upgrade the old db file with new db file from URL.
I'm trying to start unit testing on my application (should have done so from the beginning). I've got an Eclipse project structure set up and everything seems to work well, but...
I'm subclassing SQLiteOpenHelper to access the application database. This works well for the application, but when using the same class in the unit tests, it writes to the same database as the actual application. This is obviously rather irritating, since unit test data shows up when developing and testing the actual application.
What's the best way to make the SQLiteOpenHelper class write to a different database file when being called from the unit tests?
I am developing an application that needs to access data on the sd card. When I run on my development device (an odroid with Android 2.1) I have root access and can construct the path using:
However, when I install this on a phone (2.1) where I do not have root access I get files == null. I assume this is because I do not have the right permissions to read the data from the sd card. I also get files == null when just trying to list files on /sdcard. So the same applies without my constructed path.
Also, this app is not intended to be distributed through the app store and is needs to use data copied separately to the sd card so this is a real use-case. It is too much data to put in res/raw (I have tried, it did not work).
I have also tried adding: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
To the manifest, even though I only want to read the sd card, but it did not help. I have not found a permission type for reading the storage.
My plan is to prepopulate a database on a virtual device and then include database in the distribution of my app.However, I can't find the database file.Is it on my hard disk some where?How do I get it?I tried connecting using adb, I did an "ls" and then got really scared by this obscure list of directories.
As i am Creating SQLite database connection while running when i view ddms fileexplorer show the size of database as 3072 i think that why i am unable to open the data base and retrive the values so please anybody can help me out to sort out this error