Android :: Stay Backwards And Forwards Compatible - TargetSDKVersion Hdpi MinSDKVersion?
Apr 16, 2010
Here's my situation: I have an app that's been compiled using 1.5 SDK and minSdkVersion=3. Now I want to add 2 icons: one for high density screens like Droid and another one for low density screens like G1.
For this, I added the high density icon to new directory drawable-hdpi- v4/. I then compiled using 1.6 sdk and added targetSdkVersion="4" to the manifest. minSdkVersion is still 3.
This is working in limited testing, but I'm not sure if I have done everything correctly.
I have many questions:
1. By specifying v4 in drawable-hdpi-v4, the icon will not be displayed to 1.5 or below OS's. But what about users with 2.0 or higher SDK's? Will they get the non-hdpi icon, since they will have v6 or v7 ?
2. The documentation for targetSdkVersion states, "Specifying this target version allows the platform to disable compatibility settings that are not required for the target version (which may otherwise be turned on in order to maintain forward-compatibility)". Does this mean that my app will not be forward compatible as soon as I specify a targetSdkVersion? What exactly is being turned off?
3. Even if I leave out the targetSdkVersion="4", the app runs ok. So do I really need it?
4. Should I be using the latest SDK (2.1) and setting that as the targetsdkversion and compiling against that? Or some other combination of targetsdkversion and compiling sdk? I'm not using any API's that are not in 1.5..
5. Is any of this related to why some of my HTC Eris users have complained that they can no longer find my app in Market after upgrading to 2.1?
View 3 Replies
Oct 12, 2010
I am getting the warning: Attribute minSdkVersion (3) is lower than the project target API level (8)
How will this affect my app?
View 1 Replies
View Related
Dec 1, 2009
Is Android backwards compatible, in other words can an application developed in Android 1.6 run in Android 2.0? I just published a 2.0 application and discovered that I can't find it in the market using my G1 (Android 1.6) phone. But apparently others are downloading it. Should I downgrade the application to 1.6 or do I need to create separate applications for each Android version?
View 8 Replies
View Related
Feb 5, 2012
I am currently running CM 7.0.3 (2.3.3) and want to update ROM to CM 7.1.0.1 (2.3.7)
My Question is this: can I use THE SAME Titanium Backup APK from 2.3.3 to BACK UP ALL APP DATA and IMPORT APP DATA TO 2.3.7?
View 3 Replies
View Related
May 30, 2010
I've noticed in my old blackberry that when I would send a message I had the option of adding a BCC recipients so that nobody else can see who else I fwd to. How can I do this on the Incredible? I've looked but I haven't been able to find that option. It's gotta have it I'm sure!
View 1 Replies
View Related
Sep 21, 2010
I was sitting around testing the PhoneTell app. I was calling my NON Google Voice phone number, the phone that receives GV calls and this is what i learned. Upon rejection of the phone call or if i miss the phone call it is automatically forwarding calls to my Google Voice Gmail account (voip)! Keep in mind I was NOT calling my Google Voice #. So upon rejection or missed call of your Normal number the call will be routed...and of course it will work as expected when actually calling your GV number.
This is astonishing and literally means no more missed calls. When I'm in a no signal zone it would seem like I don't have to go through the trouble of telling people my GV number as it will automatically route the call anyway?!
View 3 Replies
View Related
Nov 24, 2010
My Android application uses minSdkVersion=3 and targetSdkVersion=8. I used 8 because that is the highest level of API the application was tested on; however, it was written for level 3 and does not use any features beyond that level (except one for level 4 using reflection). Could using targetSdkVersion=8 be causing: the Android Market to filter the application for some devices? My intention is for the application to be available for ALL devices >= level 3 with NO filtering. problems in the application since targetSdkVersion=8 will, according to google: "disable compatibility settings that are not required for the target version (which may otherwise be turned on in order to maintain forward-compatibility) or enable newer features that are not available to older applications".
View 1 Replies
View Related
Jan 5, 2010
What does targetSdkVersion do?
There isn't much detail on what targetSdkVersion actually does.
I've read:[url]
An integer designating the API Level that the application is targetting.
With this attribute set, the application says that it is able to run on older versions (down to minSdkVersion), but was explicitly tested to work with the version specified here. Specifying this target version allows the platform to disable compatibility settings that are not required for the target version (which may otherwise be turned on in order to maintain forward-compatibility) or enable newer features that are not available to older applications. This does not mean that you can program different features for different versions of the platform—it simply informs the platform that you have tested against the target version and the platform should not perform any extra work to maintain forward-compatibility with the target version.
Introduced in: API Level 4
I'm curious because it appears that switching from:
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/> to <uses-sdk android:minSdkVersion="3"/> is the change that started the
android.view.InflateException ... java.lang.OutOfMemoryError: bitmap size exceeds VM budget
errors I was randomly seeing in setContentView. When I remove the targetSdkVersion it runs much better.
Now I'm having trouble remembering what adding targetSdkVersion got me in the first place.
View 6 Replies
View Related
Nov 15, 2009
I've got a question as I don't have an Android 2.0 device to test on and this particular aspect seems untestable in the emulator. I've got a service that needs to be run as a foreground service. I have a notification that stops it etc, so I have no problem using startForeground instead of setForeground. However, I'd like to have 1 version of my app that works across all platforms... Is this possible? If my app is compiled with Android 1.5 and uses setForeground, then will that command actually work on an Android 2.0 device, or does it not matter which sdk was used to compile? I've tried compiling with 2.0, and surrounding the call to startForeground with a try/catch, but that throws a VerifyError when the service is started, when run on a 1.5/6 device since startForeground doesn't exist there. Can I catch and ignore the VerifyError somehow and make it work that way?
View 5 Replies
View Related
Dec 14, 2009
Are the newest versions of aapt backwards compatible with the older versions? i.e. can i read 1.0 & 1.5 apks with the 2.0.1 SDK aapt? My tests show me it works, but is it failsafe?If this is not the case, what's the easiest way to determine the android version an APK was developed for and know which aapt binary to use?
View 2 Replies
View Related
Apr 17, 2010
According to the instructions found here, to make your app state which screen sizes you can support, you'll need to compile your app against Android 1.6.
View 1 Replies
View Related
May 30, 2010
My application retrieve icons of installed apps on the phone. But for the dialer, the icon is different when I target a minSdkVersion = 3 or minSdkVersion = 4. I did not found different icon for an other application.
I am testing on a motorola milestone. and I use ActivityInfo.loadIcon() to load icons.
Can someone explain this behavior ?
View 2 Replies
View Related
Mar 15, 2010
A few days ago I was trying to fix this issue: I have a header (three ImageButton's) and a ListView. If I use the dpad, pressing DOWN to focus the ListView, the ListView shows as selected the seventh or eighth row, not the first one.
What I need to do is that the first element of the ListView get the focus (or selection) when I use the dpad, from another screen component, but instead, the seventh or eighth is selected.
I had minSdkVersion=3 in my manifest. When I changed it to minSdkVersion=4 it worked as expected (first row selected). Don't know why, but there is a difference between both.
View 6 Replies
View Related
Jul 9, 2010
I'm developing an Android application that I'd like to be compatible with 1.5 (SDK version 4).
I'm testing the application on 2.2 (SDK version 8).
To do this, I'm including in the manifest file the line <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8" />
I thought this would allow me to use the newest manifest elements and APIs, but I'm getting a compile error whenever I try to use them. For example, I try to define the element installLocation to allow the app to be installed on the SD card, but Eclipse gives me the error
No resource identifier found for attribute 'installLocation' in package 'android'
Is there something else I have to do to get this to work? If I can't get this to work, what benefit is defining targetSdkVersion?
View 2 Replies
View Related
Apr 27, 2010
I wrote a basic soundboard app, and it runs fine there's nothing wrong with it. I want to upload it to the Market, but every time I try I get an error message:
Market requires the minSdkVersion to be set to a positive 32-bit integer in AndroidManifest.xml
That is already in there, I'm using 1.5 so I have my minSdkVersion set at 3. I don't understand what the problem is, and I've asked a lot of devs that never know what to tell me. I don't want to use a different platform because my phone currently uses 1.5. Others have suggested putting the <uses-sdk> line under the <manifest> line, but that hasn't helped at all.
Here is what my manifest looks like:
code:....................
View 5 Replies
View Related
May 21, 2010
I plan to make some tasks like DEX file optimization be processed by installd on the background asynchronously, thus installd needs to notify the Installer of the result at some uncertain point when the request has been processed. Currently, a socket connection will be established each time when Installer sends request to installd and the connection will be closed when it returns. Thus I plan to hold another persistent socket connection for the backwards notification. Then whenever a request has been processed, installd can notify Installer through the persist socket.
Is there any other way to implement this?
View 2 Replies
View Related
Aug 26, 2010
All these days i used to test my application on my HTC Legend (2.1 OS) only, and i had all my images resources in drawable-hdpi folder.. and everything worked fine
and today i wanted to test my Application on Android 1.5, so i recreated all the images with lower resolution and kept it under drawable-mdpi folder, so now i have High resolution images in drawable-hdpi folder and lower resolution images in drawable-mdpi folder..
Everything looked great on both the HTC Legend and Emulator(with Android 1.5)
Later i found out that the images in drawable-mdpi are shown in my HTC Legend too and not the images in drawable-hdpi in my manifest file i have also included <uses-sdk android:minSdkVersion="3" /> <supports-screens android:anyDensity="true" />
I want to know as to why the images in drawable-hdpi are not used?
View 2 Replies
View Related
Feb 22, 2010
I have built android 2.1 on freescale's i.MX platform. But after running Gallery3D, it will crash with the log of failed to load resource. I found that the whole drawable-hdpi/ (it really contains in the Gallery3D source code res/) is not in the apk package, and cause lack of drawable-hdpi/icon_cancel.png. The apk only contains drawable-mdpi/ and drawable/. My question is why the drawable-hdpi/ resource is dropped when building apk? Per my understanding is that, which drawable-* resource loading is determined on runtime, and all the drawable-* should be in the apk package.
View 7 Replies
View Related
Jan 5, 2010
I have some 9-patch images on my app, and they work great on the medium density. When I load the app on a High density emulator/device, these images look grainy. It happens only to 9-patch images. The others look great after the pre- scaling. Is there a way to make them look good after the scaling, like the non-9-patch images?
View 10 Replies
View Related
Mar 20, 2010
I recently upgraded my Android app to support multiple resolutions. Previously, my Android.manifest file had a line:
To support multiple density and resolution devices, I changed this to:
CODE:............
I then added a couple of new directories, like drawable-hdpi-v4 and drawable-long-hdpi-v4 that includes the high-res versions of the graphics. That's about it.
Ever since releasing this update, there have been a decent number of users complaining about various problems:
the app icon doesn't appear (I did not create a high res version of the icon)
the home screen widget no longer works, even if they delete and re-add it (this code did not change with the update). I've had a user send me their error log, which shows:
CODE:................
There is one questionable section in my existing widget code that may be relevant:
CODE:..........
And perhaps most troublesome: the sqlite database is no longer accessible/writeable for some users so their data is no longer available. I did add the WRITE_EXTERNAL_STORAGE permission to the manifest. This is only happening to certain users and it tends to be HTC Eris users. In that error log I see things such as:
CODE:.........
It's as if the update has caused a new process and it can't access the old process's data, or something.
View 1 Replies
View Related
Apr 29, 2010
I have set up my project with different drawable directories (ldpi, mdpi and hdpi). I have a background png with two different resolutions: 320x480 in drawable-mdpi folder, and 480x800 in drawable-hdpi. Both have the same filename. When I try to load the background as a style in the manifest (using android:windowBackground in the style) if I use the emulator for a 1.6 device, I get the correct one loaded(mdpi). However, if I try this on my Nexus, I see that at first the correct background from the hdpi folder is loaded, but it quickly switches to the mdpi one. I have tried also to set up the background in the layout xml file (android:src=...) but in this case only the mdpi one is loaded. If I delete the mdpi version, everything is loaded ok. Any idea on what is the problem?
View 1 Replies
View Related
May 11, 2010
I made each image a different color so I can tell if it is loading the right image. When I test my program on different density screens it only chooses the mdpi images. It scales them to match the correct dpi but doesn't choose the right folder. It just defaults to mdpi. In the manifest I have, android:normalScreens="true" android:anyDensity="false"
Anyone have a similar problem? I'm sure it is something simple that I am overlooking but I can't figure it out. From what I read on the Android Support Multiple Screens guide is that you should just have to put the different density images in their correct folders and Android will do the rest.
View 5 Replies
View Related
Nov 24, 2010
What is the proper way of sizing the dimensions of an image in a hdpi screen vs a ldpi screen.
For instance, an 89*80 png displays fine, with the text, on my droid 2....but how should I go about resizing the image to be smaller on a smaller screened droid? Do I manually alter the image and place it in the ldpi folder or will it do that automatically?
View 1 Replies
View Related
Jun 26, 2010
I have a program that should work on Android 1.5, but when it's run on newer devices with higher resolution screens, it should support the full resolution and not emulate a lower resolution screen. As far as I can tell from the documentation, this should be simple.
I just specify
code:.........
The problem is that if I tell Eclipse to compile for 1.5, it refuses to accept this. It reports an error (targetSdkVersion is an unknown tag) and refuses to compile or run. If I tell it to compile for 1.6 it works fine, of course. But if I then try to install on a 1.5 AVD, the program immediately crashes with a java.lang.VerifyError. I'm clearly missing something simple. How do I get it to compile an apk that works under 1.5, but still includes the targetSdkVersion tag?
View 3 Replies
View Related
Apr 24, 2009
I have the following clear message :
Market requires the minSdkVersion to be set in AndroidManifest.xml.
But my manifest has the line : <uses-sdk minSdkVersion="2" /> and I also tried even <uses-sdk minsdkversion="2" />... I try to put this line : as the first child of manifest, as the last child and also right after application.. Is there a hidden rule I don't know ...
View 11 Replies
View Related
Jul 22, 2010
The problem I am having is that when I run a FWVGA or WVGA sized emulator it sometimes runs at a MDPI size instead of HDPI. Here is an example with pictures. I create the AVD with the proper hw.lcd.density setting and screen size and it randomly does this. There doesn't seem to be a pattern. I used to be able to just delete the AVD and create it over again and it would fix itself for a while but now it's getting worse.
View 1 Replies
View Related
Feb 15, 2010
Im trying to do some testing with a QVGA emulator and I find that it looks for an image resource in the mentioned order.
drawable-mdpi 1st
drawable-hdpi 2nd
drawable-ldpi 3rd (it does get found only after i change the name of the image in the other two dirs for testing)
I would expect it to be ldpi first.
When running other emulators (HVGA and WVGA) they use their appropriate drawable dirs... its only QVGA. The only code that I see could affect this is here (based on the docs)
I have tested this with a 2.0 emulator and a 1.6, i get the same result.
View 2 Replies
View Related
Feb 16, 2012
Any app which can mass resize .png from HDPI resolution to MDPI!
I had seen a similar app for MAC but any such application for windows!
View 9 Replies
View Related
Jul 14, 2012
I am making a ROM. And I'm trying to change the stock icons. I've tried every posssible way but i just can't change them. I'm trying to theme Holo Launcher with custom icons. The icons I have are hdpi. So i don't know how to turn them to mdpi. Is there any way i can turn it to mdpi on my PC. And what are the icons supposed to be renamed as well as which directory am i supposed to place them.
View 1 Replies
View Related
Aug 21, 2012
is there anyway to trick cm9/aokp theme chooser to think that my device is hdpi, instead of mdpi, without lcd density changer hack most HDPI themes, if not all(with the exception to lucid) work on mdpi devices yet theme chooser doesn't allow me and will give me a compiler error.
if the above does not work. is there anything i could change in the theme apk, whether its an xml, or image or anything I could change to make theme chooser think that i am using an MDPI theme, even if the theme includes hdpi images? THE "APPLY HDPI THEMES TO MDPI PAGE, LCD DENSITY CHOOSER PAGE.
View 8 Replies
View Related