Running Android Applications on Smartphone with Lower Versions - android

Hello I am new to Android Programming, I have a doubt, can I run and test all android applications that I am going to create on my HTC phone with ice cream sandwich. I am using android studio and I prefer to test apps on my HTC connecting via USB. My system is very slow while using an emulator it is very difficult to test on emulator
Also 'compile with' API means what, I understand minimum and target sdk in Eclipse..

Yes, you can use your physical device.
But the good practice is to create a range on AVDs from minimal to max Android versions, and to test your app (run tests if you have wrote them) in those AVDs.
Skipping this point will lead to some users dissatisfaction because your app can fail\crash on untested versions. Different Android versions do have some minor differencies in the API and libs behaviour.

Related

Emulate Android 1.6 Donut with ARM ABI

Is it possible somehow - anyhow, even in another virtual machine - to emulate an ARM-based Android device running Android 1.6 Donut OS?
Android Studio does offer creating a hardware device with this version of Android, but nothing happens when I'm trying to start the emulator. I cannot start neither 1.6 Donut nor 2.3 Gingerbread. I can run 7.0 Nougat, however.
Gingerbread and Donut fail silently, the console that runs Android Studio does not output anything.
Background
I'm doing experiments on how these old devices could be reused and I have discovered that I can compile at least some rudimentary C++ using NDK (along with older versions of Java, but right now I'm interested in running native code).
The ancient old Android NDK that supports API Level 4 can only compile binary for ARM processors, but right now I'm only able to run Android 1.6 x86 in VirtualBox, which, of course, won't run that code.
As an alternative I would be happy with an NDK that compiles for the x86 port of Android.
I have successfully compiled some rudimentary binaries for recent versions of Android using NDK, now I wish I could do the same for older versions without a physical hardware, as my oldest device runs 2.3 Gingerbread. At the time I got that phone, it used to run version 1.6, but I have upgraded it long since and there is no way to go back.
I'm targeting specifically those devices that nobody uses anymore, but are not thrown into the garbage yet. (even if it remains only a hobby project, thereof)
Thank you for your hints in advance!
Micheal guided me to the right direction, thank you!
Solution
Silly enough, I did not found on my own where can I download an older release of the sdk.
I also forgot that tools/android is the executable for the graphical AVD manager (meanwhile it also features a very friendly text interface).
I could run Android, and also a hello world compiled with the old NDK.
I'm now very excited to see what is possible with these old Droids using C++! :)

how can I test android app on version 3.0 API level 11

I've developed an android app, and the client insist that I will test and debug it on old android versions (3.0,2.3).
I've tried using the SDK emulator but I was not able to get the older version actually running.
i.e. they start (extremely slow) and crash before any thing meaning-full happened.
I was considering buying a device but where can I find devices with older android versions?
I guess I could try downloading an older android img and burn it to my device but that seems too cumbersome...
Any ideas?
For 2.3, use the x86-based system image and hardware acceleration rather than the ARM image. It's quite fast.
For 3.x, you may want to inform your client that as of the latest numbers Honeycomb 3.2 only makes up 0.1% of devices running Google Play and 3.0-3.1 aren't even mentioned! If they still insist, you'll have to troubleshoot the computer you're trying this on. I've had varying success running those old emulators on mac vs. windows. Try lowering the ram that the emulator requires.

New to Android.....Using Samsung Captivate for debugging

Just wondering I have searched but I have not found an answer. My question is I installed the latest sdk 4.0 platform. I am testing with a Samsung Captivate which runs on 2.2. When I debug I get the error about them being on different platforms. My question I quess is probably stupid, But can I ever use the captivate to test my apps I build in platform 4.0 or must I stay at the 2.2 level? New to this....Can I update my phone or just test using the 2.2 platform.
You will only be able to test apps that your phone supports. You are able to target different versions of Android (in Eclipse, right mouse click on your project then edit the Project properties - target a lower version of the OS).
Bottom line, if you are writing apps that target a specific version (in your case you wrote something for 4.0) the device you use must support that version of the OS.
You can set the version you target, which will allow you to debug on your device.

compatibility Android 3.* with android 4

I want to build Android application. My target devices is tablets (not smartphones). Today exist only 3.* version of android OS, aimed for tablets. Is it normal if i begin build application for tablets in 3.* API? The tablets which will be release with android 4.0 (ice cream sandwich) can to run my application built on 3.0 API? Or me better to wait for 4.0 API if my target devices is tablets?
Generally, in which version of API to develop my app for tablets?
Thanks.
I'm pretty sure that the applications which run on Android 3.* will run on Android 4.* too, because there is no point of making and OS if the old application will not run and all the developers have to build their applications for the next version. So I suggest to build your application for Android 3.* if your target devices are tablets.
Android documentation says that all their SDK releases are forward friendly and that seems to be the case when using an emulator. I have an application that was written in 2.0, recently upgraded to 2.1 and we have some people in the office that have XOOM tablets (3.0) and we cant get it installed.
After some modifications to the manifest (suggested steps from droid dev portal) it still wont install on the XOOM at all.
If you are targeting tablets then i would start with 3.0. If there are features in 3.1 that you can't live without then have fun.

What is needed to make the "Hello World" example available to all devices on the Android market?

I have problems to get my application available for some devices. So I decided to keep it simple and go back to the "Hello World" example project, and try to make that available for those devices. Unfortunately, no matter what I try, the market keeps filtering it for the good old Samsung Galaxy i7500 and the T-Mobile G1 (HTC).
Copy Protection is Off, the application is "Free" and available for all countries but Unpublished (I'm not trying to download it ... yet).
The Manifest file has:
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>
The manifest really has no other filters (permissions, uses-.. or supports-...)
I'm using eclipse, Indigo on Ubuntu Linux (11.04)
SDK version r14
Problem existed also on Eclipse Helios, Android SDK version r10
The Market application info states:
This application is only available to devices with these features, as defined in your application manifest.
Screen layouts: SMALL NORMAL LARGE XLARGE
Required device features
android.hardware.touchscreen
This application is available to over 694 devices.
Unsupported devices (some examples) are:
HTC
G1 (trout)
Touch Viva (opal)
Samsung
Behold II (sgh-t939)
Galaxy (gt-i7500)
Moment (sph-m900)
Spica (spica)
At least the G1 and the i7500 have a touchscreen, so that can not be the problem.
The Hello World project is made in Eclipse, with File->New->Android Project , and then just add the line mentioned in 2) in the manifest file. Sign, upload to market, save, and check the Device Availability Dialog.
It worked fine until somewhere in september, after I used the Android SDK Manager in Eclipse to update to the latest release. Am I the only one with this problem? How can it be solved?
This is a bug going on. The same thing actually happened to me. I ended up renaming my package and uploading it to the market and then it worked. This may be a solution you can try.
It looks like those devices can't even have android market so don't worry
reference: https://www.google.com/support/androidmarket/bin/answer.py?hl=en&answer=1141080
android version must be over 1.5 and those cellphones are:
G1 android v1.1
gt-i7500 android v1.5
Touch Viva Windows Mobile
Behold II android v1.5
(sph-m900) android v1.5
...
"Device is running Android 1.5
At this time, the Android Market website is only compatible with devices running Android 1.6 or higher. If your device is running Android 1.5, we recommend contacting your carrier or device manufacturer to see if an update to a higher version of Android is available."

Categories

Resources