Android :: Targeting Multiple OS Versions
Nov 17, 2009
We are upgrading our application to add 2.0 support. I have read http://developer.android.com/guide/appendix/api-levels.html and the older blog post http://android-developers.blogspot.com/2009/04/backward-compatibility.... I want to avoid using reflection if possible. I have found that if I set my minSdkVersion="3" in the application manifest but in my build path in eclipse point to the Adroid 2.0 jar file I can compile with direct calls to 2.0 code (with the relevant code to ensure they are not invoked on <2.0 devices). My question is will people with pre 2.0 devices be able to see the application in the market place in this case? What are other people using for multi-targeting different API levels with the same package.
View 7 Replies
Oct 3, 2009
How can I publish two versions of my app without changing the package name, so that users may upgrade to either version, one for Anroid 1.5 and one for Android 1.6 ? I want to offer new features requiring Android 1.6 as soon as possible, but not all users will have upgraded to Android 1.6.
View 2 Replies
View Related
Feb 19, 2009
I am planning to have two versions of the same app available in the market - let's say "App-Lite" and "App-Advanced". They both almost the same core functionality, but App-Advanced has a bit more specific features, than the App-Lite has. Now I am thinking what would be the strategy of deploying those two apps in the market. The simple way is to provide different name space in AndroidManifest.xml for both apps, so "App-Lite" and "App-Advanced" would show up as two completely different applications and could be installed parallel on the same device. But I'm also thinking about another way of installing the App-Advanced version - like an upgrade to the App-Lite which might be already installed. To do this, I can just set the same name space for both app in AndroidManifest.xml, so after installing one app would replace the other one - I can do this from adb command line, but I'm not sure how android market would behave in this case. Will it show them as two different apps, will it show them as two different versions of the same app with the ability to upgrade from one version to another, or it just will not allow to publish two apps with the same name space? Is this scenario doable with Android Market?
View 3 Replies
View Related
Aug 3, 2009
Whats the best way to deploy several customized versions of a Android application? Currently I have a script to exchange the resource folder for getting a customized version of my app. It works great, but all custom versions still have the same package name in the AndroidManifest.xml. Therefore it is not possible to install two customized versions of the app at the same time.
View 3 Replies
View Related
Jan 8, 2010
I need to be able to easily create different "flavors" on an app, each with a unique package name so that they can coexist on the same device. Is there a simple way this can be done, which doesn't require manually updating all the imports and other references to the package name each time I change it?
View 4 Replies
View Related
Feb 18, 2009
We're thinking about building light and paid versions of our app for the Market. But I am not clear what we need to do, or how to do it. (1) Do we definitely need the two versions to have different package names for the two builds ?It seems logical to do it that way, but I have not found a clear answer from Google to that question. Though I have found several people asking the same question. 2) Is there any support in Eclipse for building two similar apps with different package names from the same java and xml files ?In most of the IDEs I've used, it is a doddle to define multiple build targets for one project, but none of those mechanisms seem to be present here. And, the package name is embedded in every java file, as well as in many places in the manifest, leaving me without a tidy way to build to alternate package names.Is there a tidy way to build multiple version ? Or are we really going to end up copying the whole codebase and search-and-replacing the package name.
View 6 Replies
View Related
Sep 9, 2010
I would like to know if its possible to prevent my application from looking different every time I run it on a different android phone. For example, on stock 2.2, my seek bar (with default values and theme) has an orange color for the selected portion, whereas on a Samsung Galaxy S (with 2.1), it is green. Also the tab background is grey in stock 2.2, but blue in Galaxy S. On a similar note, my rating bar changes size too. I do not implement multiple screen resolutions and all my drawables are located in the "drawables" folder under "res". I donot specify a minimum sdk requirement.
View 5 Replies
View Related
Nov 5, 2009
This is for an Android application but I'm broadening the question to Java as I don't know how this is usually implemented. Assuming you have a project that targets a specific SDK version. A new release of the SDK is backward incompatible and requires changing three lines in one class. How is this managed in Java without duplicating any code(or by duplicating the least amount)?
I don't want to create two projects for only 3 lines that are different. What I'm trying to achieve in the end is a single executable that'll work for both versions. In C/C++, you'd have a #define based on the version. How do I achieve the same thing in Java?
View 5 Replies
View Related
Jul 30, 2010
I have an app on Android Market right now with a minSdkVersion corresponding to Android 1.6. I'd like to make an update that is only visible to users of Android 2.2 and higher (there is a good reason for this, which I will explain below). So I have two questions:
- First, if I publish an update with a higher minSdkVersion than the one it replaces, will existing users still be able to see and download the old version if their device is not >= that minSdkVersion? - Secondly, if so, would it be possible to publish updates to that older version branch? Or would it become a fossil relic, but at least always there for downlevel users? Now for the background. My apps use a large amount of resource files-- about 15MB for the Lite version, and about 55 for the Full version. Prior to Android 2.2, it was not possible to install an app on the SD card, so my solution to this was to have the app contain the bare essentials, and simply download the other resources from my web servers at first-run. However, this means that I must maintain external infrastructure, and it's also a bad experience for users who must download the app, then start another download sequence (I already have had several complaints about this in my user comments). What I would like to do is to keep the app as it is for users with Android OS < 2.2. I'd like to publish an update that is only visible to users with Android OS >= 2.2 which packages everything into the app and allows it to be stored on the SD card. And I'd like to be able to perform maintenance on both versions as needed. Why can't I just do the update as described above to a single branch of the app? Because it would mean that users with Android OS < 2.2 would have to download a massive application to their internal memory, which could be a deal-breaker for devices with only 128MB or 256MB, which is shared with the OS. Since I already have paying customers, I don't think I can ethically create an update that would potentially consume most of a user's internal memory, when the version they purchased was only a couple MB.
View 9 Replies
View Related
Jan 11, 2010
I need my app to run on all Android versions, but the Contacts API changed in 2.0. In SDK 1.6 and earlier I use android.provider.Contacts to query the contacts DB, but this does not work in 2.0 Instead, for 2.0 I use android.provider.ContactsContract. This presents a problem: when I have code for ContactsContract, my app will not build for 1.6 and earlier. Do I need to have two separate versions of my app (one for <= 1.6 and one for 2.0 and later) or is there a way to avoid doing this?
View 1 Replies
View Related
May 15, 2012
I'm contemplating the idea of developing an application for the android. I have several years of experience developing web applications with Java and so figured it shouldn't be too hard to pickup a book and learn how to do it for the android platform. So far so good; that's why I love Java.
My question is in regards to how does the android development community go about testing their applications of the various android version and phones? I think I'm more concerned about the android version rather than the phones. I'm planning on getting the Sprint Evo 4G LTE coming out on Friday, so I'm obviously going to be able to develop and test for Android 4 and HTC Sense 4 (though I don't think that is as important right? Development is usually against the OS and not the UI manager, right?). But how would I go about testing against Gingerbread, Froyo, etc.? Do you guys keep a previous old phone (like my old HTC Evo 4G) and flash diferent roms in order to test the app against previous versions of android? Are there other solutions? If it's using an old phone, does this work off-network/service? I guess you could just dump the apk on the sd card and install as third party app and test it out. As long as the app doing require phone services or mobile data network (internet) you'd be fine if you have wifi access right?
View 4 Replies
View Related
Aug 20, 2010
I would like to make a single Android app for multiple Android versions (possibly every one of them)
My problem is that I want to check what is the version of Android the app is currently running on, and dynamically load a class which is version dependent. This part should be ok.
I just wonder how I can achieve that without compilation errors in my Eclipse project. I mean, the project is configured for a particular target (1.5, 2.1 ...), so if a class in my project is not compatible wich the selected target, it will result in errors.
Is there a way to export this classes even if they are not fit for the platform (I thought about a separated lib, but then again : how to compile theses classes into a lib without compilation pbs?) ? This should be ok since they won't be loaded until I ask them to after having checked Android version.
View 2 Replies
View Related
Jan 19, 2010
I am currently trying to make my app compliant with all screen sizes / api levels. I have this mostly working, however there is 1 issue i cannot resolve: Layouts in the "layout-hdpi" folder are used by and any phone on 1.5 (API level 3). - Which i dont want, i want API level 3 phones to use the "layout" folder. So to resolve this I added "-v4" onto the folder also, this works, the folder is no longer used by 1.5 phones. However, now the folder is also not used on API Level 6 phones, for example the droid. The droid only picks up the folder if i name the folder: "layout-hdpi-v6". (Also if i put "-v3" on a folder, the layout folder is not used by API level 4 phones) My understanding is that the -v<api level> qualifer allows you to exclude phones on an API level that is too low, so -v4 should mean that the folder will be used by all phones on API level 4 and above. I am finding a folder is only used for that specific API level. Has anybody else ran into this same issue? And does anybody know of any possible solutions?
View 3 Replies
View Related
May 4, 2010
Are there any viable approaches for creating multiple .APKs out of a single codebase? The apps may share the same code, but they could have different manifest files, different resources, or different external libraries (for example in an app with both free and paid versions, the free version could have a library for display ads). Ideally, this would be a single Eclipse project, with a way to specify which app to build/debug, and possibly a command line way to batch build everything.
View 16 Replies
View Related
Dec 16, 2009
I'm developing one android application which needs to support Android OS 1.5, 1.6, and 2.0. I've three different .apk files for all three SDK. How can I upload three different .apk files on Android Market Place for single application? I would like to have all 3 versions available under one application name. is this possible? So, users with any SDK can use my application.
View 5 Replies
View Related
Jul 1, 2010
I have written an Android application that I am about to release, but I would like to have a 2.1 version with multitouch and a lower API version without. However, if I simply just use the minSDK setting, the 1.6+ version would show up in the market with the 2.1 version on 2.1 phones. Is there any way to release for a specific range of OS versions?
View 3 Replies
View Related
Oct 28, 2009
I have a few scenarios where I guess I am not alone with. There is no easy solution but this has to be on top of the list I think.
1. Suppose you have an application that is compiled with 1.5 and is working fine even if started on a 1.6 device. But you now want to support other resolutions, so you need to compile with 1.6. Problem: If I recompile and publish the new apk, the 1.5 users want see my applications. Users already downloaded my application can not upgrade. (will there be a "new version" available shown to them in the market?)
2. Lets say your application works fine on 1.5 and 1.6 and you decided to publish your application twice with different package names. "MyApplication 1.5" and "MyApplication 1.6" for example. Problem: The user upgrading from a older version does not know that there is a new version, because you published a new Application. You can write it into the description and tell the user to download the 1.6 version but many users might not read that Settings from the other application are lost. Your downloads are split into two applications, so you might not make it into the top ranks that easy . You might even need to publish 4 applications if you have a light and a paid version.
3. Now 2.0 SDK is available and you want to add multi touch features or any other new stuff for all 2.0 users. Problem: The above problems are getting even worse. There is no way to easily upload multiple apks for the same application. Having to rename the package is also not making this better. Every time svn freaks out and marks everything as new. Sharing code between versions is difficult because of that.
I don't know if its just "3" (provider in Austria), but I still have not received an official update to 1.6. Testing on the real device is not possible with a 1.6 image if you don't want to root your phone and update the rom manually. 2.0 will be on some devices soon, so there is definitely a need to support all 3 versions. There should be a faster update cycle for the users or a slower update of new versions meaning bigger steps. or We get an easier way to support multiple versions. This also means we need a way to know how many actual devices with version 1.5 / 1.6 / 2.0 are already sold and/or upgraded. If i know that 1.5 is only on about 5% of the devices left, then I can just stop supporting that version and upgrade.
View 4 Replies
View Related
Oct 29, 2009
I'm interested in learning Android development but if I install the latest 2.0 SDK, will I still be able to target 1.5 and 1.6 devices? (since there is only one 2.0 device right now)
Basically I'm wondering if it will tell me if I'm doing something that won't work on older versions of the OS.
View 2 Replies
View Related
Jan 21, 2010
I'm building an application, and need to support both 1.5 (Magic and Hero) and 1.6 (Tattoo) devices.
As Android SDK is forward compatible, it seemed logical to build against Android 1.5 SDK, and expect application to work on Tattoo. While that's true, (I tested app, it works ok), I'm now having problems on Android Market. On Tattoo, Market search by default filters android apps that doesn't have explicit support for small screens defined in AndroidManifest. Problem is that attribute exists only on Android 1.6 SDK, so Building against Android 1.5 SDK is no an option anymore. How safe is to build App agains A1.6 (with minSdkVersion="3") and run it on 1.5 devices? Is there anything else I should take care of except just change target SDK?
View 1 Replies
View Related
Jan 6, 2010
I'm trying to get rid of the mentioned (READ_PHONE_STATE and WRITE_EXTERNAL_STORAGE) auto-permissions in my signed apk, but I can't. I know it is an issue with targeting 1.5, but this isn't my case. I'm targeting >=1.6. I've checked everything: In my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.aaa.bbb"
android:versionCode="1" android:versionName="1.0.0">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
Eclipse generates the proper value in default.properties: target=android-4
View 3 Replies
View Related
Feb 3, 2009
Last week I published our first app to the Market, which is a game targeted to users in The Netherlands. Now that the G1 has been available over here for a couple of days, we have received feedback from several of our users. When I look at the developers console in the market however, the download count still shows 0.
Also on the device it is listed as <50. When looking around in the Market, I see that all applications targeted to The Netherlands are listed as having <50 downloads, even an application that received a lot of publicity. Have other developers noticed the same?
View 14 Replies
View Related
Jul 3, 2009
I am trying to get the intent "android.intent.action.BOOT_COMPLETED" sent only to the receiver "com.android.mms.transaction.MmsSystemEventReceiver" as this triggers the sms notification to be updated and removed if there is no longer any unread sms's. The issue I have is I need to make sure the broadcast is only sent to the class above. If it goes to other receivers the phone could end up in an unknown state or something strange. The code below does not seem to work.
Intent intent = new Intent(); intent.setAction("android.intent.action.BOOT_COMPLETED");
intent.setClassName("com.android.mms", ".transaction.MmsSystemEventReceiver");
activity.sendBroadcast(intent);
This code does work but since it goes to all receivers I have noticed some errors starting to show up in logs etc.
Intent intent = new Intent();
intent.setAction("android.intent.action.BOOT_COMPLETED");
activity.sendBroadcast(intent);
View 7 Replies
View Related
Aug 12, 2010
I need to target apps for a specific carrier. Any tips on how to do this? I've seen <uses-library> for market filtering, but looking for something else.
View 3 Replies
View Related
Oct 28, 2010
I read here: http://www.androidguys.com/2009/10/11/developers-can-now-target-by-carrier-in-android-market/ that it can be done if you go to the Android Market, and go to your app, then go to Publishing Options -> Locations, but I don't see anything to select a specific carrier there, only specific countries. Is this something that Google changed? Can this still be done, or is it done automatically? Can't the carrier be detected from the device?
View 1 Replies
View Related
Oct 6, 2010
I'm beginning with Android development. I'm aware that there is a lot of Android devices still on OS 1.5 or 1.6 so I'm thinking about require API level 3 as minimum to support them. What will I miss from 2.2? Which are the most important features I will miss targeting Android API 3 (OS 1.5) instead of most recent API?
View 3 Replies
View Related
Jun 18, 2010
I am 6 months experience in Android, use to develop simple UI based application. Now i want to write application targeting the Android core Kernel.For example i want to develop a Framework which is not present in Android.To achieve that we have to write the code for the Kernel. I dont know where and how to start the Android Kernel Programming. If anybody knows the way to start it.
View 3 Replies
View Related
Aug 16, 2010
Are there design guidelines to help decide if an application with multiple views should be designed with multiple activities or just one activity and control the back button itself.
I've tried both. My most complex applications using one activity per screen. However, now that I'm successfully written an app with just one activity and handling the back button myself, I don't see any compelling reason to use multiple activities. The one activity application is much simpler and more straightforward.
What advantages of multiple activities am I missing?
View 8 Replies
View Related
Feb 18, 2010
I'm working on an application using xml layouts.
I wish to know which is better:
1. Use few activities and change its contentview
2. Use an activity for each 'view' needed
If both works, in which case which option would be better?
View 1 Replies
View Related
Jul 1, 2010
I'm planning to develop and app that presents the users with several different screens (of different information).
Was wondering what would be the best way to implement this?
Is it better to have separate XML layouts and an activity to display and allow the user to interact with each screen of data?
OR would handling all of these in the same activity be more efficient (and dynamically load / unload each layout)?
View 2 Replies
View Related
Jan 8, 2010
The requirement is totally simple: I want to have a lite and pro version of an app. There is a little bit of difference between those two apps, but they are 99% identically. Unfortunately it seems that the best choice is to really treat this as two projects that are one and the same and copy over the source code and assets from one to the other. The Android Manifest file must be different, because the Android Market - for some reason - makes the implementation's package name the ID. Working around this ID issue the straight forward approach would be to have a third project with the common code that exports its code, libraries and in a best case scenario also the ressources to the other two objects. Unfortunately this doesn't work. Only the actual Android projects generate the R.class and so the common project would need to be dependent on it..
View 6 Replies
View Related