I'm about to start working on my bc thesis which is an android app.
I just wanna know what to be aware of when developing an app for android if I want it to run on all devices. Are there any incompatibility issues ? How do I avoid them ?
I didn't even start learning, I just want to know this in advance so I won't be surprised.
My next stop is http://developer.android.com/index.html
grandioso said:
I'm about to start working on my bc thesis which is an android app.
I just wanna know what to be aware of when developing an app for android if I want it to run on all devices. Are there any incompatibility issues ? How do I avoid them ?
I didn't even start learning, I just want to know this in advance so I won't be surprised.
My next stop is http://developer.android.com/index.html
Click to expand...
Click to collapse
Depends on the application you want to make. It has more to do with different OS versions then actual devices, only thing between devices that you will have to worry about(generally) is screen size. This again depend on the app could be a big or non issue.
Different OS versions support different versions of the API, for example i believe openGL 1.1 was only officially supported after os1.6, and then openGL after 2(mayb 2.1).
There shouldnt be to many issues that can not be overcome.
Congrats on being close to completing your bachelor's degree, i still got around 1.5 years .(i assume this i what BC is?...)
I still got a lotta work to do, but thanks
So this sreen resolution thing... how do I overcome it ?
My app will be an advanced location-aware organiser with alarms, notes (text and voice), calender and stuff, maybe a widget too.
- should I be developing the application for an older version of Android just to by sure ? Or should I stick with the newest ?
- which operations need the user to have root access ? I want them to be able to use my app without root access, which functions do I need to avoid ?
Related
Hello and happy new year,
i am thinking of buying the Nexus One. I am a programmer and i want to know if I can program at low level using the sdk. I mean interacting with the hardware etc...
Thank you
im not sure but im pretty sure if you want to do low level programming you'd need to look into the roms themselves however you can interact with some hardware via the sdk
im not sure what you mean. building regular apps to be used from market allow you to take full control of the hardware (except system files). Going lower than that you can develop apps for rooted phones (can take advantage of the android OS system files themselves), going even lower than that you can develop your own ROMs (your own custom version of the android OS), and going EVEN LOWER than that you can develop your own recovery images or even SPLs. At this level messing something up will brick your phone.
Android is all about developer freedom.
If i root the phone can I take control of system files?
ShadowReaperGR said:
If i root the phone can I take control of system files?
Click to expand...
Click to collapse
Yes you can.
Not sure about this but first the sdk came with the ability to program for the davlik framework/vm and later on they released an sdk with the posibilty towrite native apps(c/c++?). Someone more experienced should know better. I'm just saying what I remember reading a while back, never tested.
Try the NDK. might be what you are looking for.
http://developer.android.com/sdk/ndk/1.6_r1/index.html
but I think its just for 1.6 now. they have not bump that up to 2.1
I have a question that is purely out of curiosity. I'm not a developer, nor do I have any desire to become one... at this time.
In the process of answering questions for my father about his new Android phone, I came across the Android Developers website. Being the infinity curious person that I am, I started to browse through it and came across something that I was particularly curious about, the "Forward-Locked Application" market filter. It states that an application in the market can be set to not be visible to developer devices and unreleased devices. What I'm curious about is why would a developer not want their app to not be visible to said devices? Wouldn't it be to their advantage to allow their app to be visible, installed, and possibly tested if the owner of the developer phone or new unreleased phone so chose to do, after all, this is potentially new hardware that the app developer may not have support for in their app. Now not being a developer myself, I'm sure there are valid reasons for the filter and I am just curious as to what they may be.
Because you haven't tested your app on a new OS build, and want ensure compatibility before offering it for sale. Other reason is that the new OS build either obsoletes, duplicates, or just plain breaks your app. An example would be the updates to the calendar API's in Android 2.2. Every calendar widget in the market that tied into the built-in calendar app ceased to function because the way it interacted with outside apps had changed.
So the lock is not in reference to developer or unreleased hardware, it pertains to developer or unreleased software or OS?
They would check build/version number in the build.prop or whatever they use... It's just like how FroYo builds couldn't see protected apps while it was in pre-release.
garfnodie said:
So the lock is not in reference to developer or unreleased hardware, it pertains to developer or unreleased software or OS?
Click to expand...
Click to collapse
yes this is correct. The developer phones have different software that allow native root access and this would be defined in the build.prop . That would also allow people to rip applications and pirate them.
That switch is mainly a quality assurance/anti-piracy measure.
ATnTdude said:
Because you haven't tested your app on a new OS build, and want ensure compatibility before offering it for sale. Other reason is that the new OS build either obsoletes, duplicates, or just plain breaks your app. An example would be the updates to the calendar API's in Android 2.2. Every calendar widget in the market that tied into the built-in calendar app ceased to function because the way it interacted with outside apps had changed.
Click to expand...
Click to collapse
Actually, those apps that broke, broke because they were using private APIs. As explained, if you stick to public APIs your app should not break when updating OS iterations because ALL APIs are frozen as soon as a release is cut.
Here's another question then, are app's allowed to do automatic bug reporting back to a developer with out the user consent, or even with the users consent. It seems to me that say Google is testing Android 3.0, and one of their in house testers decides to install your app, but your app does not support 3.0 for whatever reason, if there is automatic bug reporting, you could be made aware of a potential incompatibility with a new API and have time to fix it long before the new OS is ever released. This all could never happen though if you have the market filter set.
garfnodie said:
Here's another question then, are app's allowed to do automatic bug reporting back to a developer with out the user consent, or even with the users consent. It seems to me that say Google is testing Android 3.0, and one of their in house testers decides to install your app, but your app does not support 3.0 for whatever reason, if there is automatic bug reporting, you could be made aware of a potential incompatibility with a new API and have time to fix it long before the new OS is ever released. This all could never happen though if you have the market filter set.
Click to expand...
Click to collapse
bug reporting is going to be a new feature of 3.0. I dont think many if any apps have their own built in bug reporting. Also it really is on the developers side if their app doesnt work with new OS revisions. They should program their apps in such a way that they wont have to make drastic changes for updates. Google also give plenty of time for developers to make fixes before the first iterations of the new update goes out (almost 1 month in the case of froyo)
however some developers just dont care (e.g Co-Pilot)
Hi,
I'm using Motorola Milestone. A lot of times I have to update a new version of an app which has several bug fixes for Nexus One. As I know that the Milestone and Nexus One are running the same Android OS version (2.1). I just wonder why a normal application (such as Calendar or Note) must be dependent on hardware? I mean the same application version that works on Milestone but some of its features don't work in the Nexus. Let's take an example of Windows OS. We can install Firefox, Winamp or even some low level interacting program like anti virus in any computer (Lenovo, Acer,...) as long as they're running the same Windows version (like Vista). Is it a down side of Android platform?
I think I have a similar question. On my work the have a winmo databas app that work like an workordersystem. Can this program run in Android by any chance or has it to be rewritten to work on a Android platform?
I managed to install my application on the SD card by using to apkInstaller.
I thus wanted to test the installation from Android Market... My application does'nt settle down on the SD card but on the telephone... Why ? Nevertheless I added in the manifest the option android:installLocation="preferExternal" !
Needs to make other thing ?
Thank for your answers !
It's mostly localization.
Either developers ask google to make their app available only for certain devices, or certain manufacturers ask google to make only certain apps available.
If an app is built against the SDK, then it's compatible with all devices that share that SDK version.
Hi All,
I'm not following the usual paths. I've developed apps for WP7, but now accept that I also need to develop for Android.
Consequently, I need an Android phone as a development test unit. I'm looking at the HTC Desire S or Incredible S phones.
My concern is that I understand that HTC has locked these phones from rerooting.
Would this stop me from creating my apps and testing them on one of these phones, without having to sign up as a developer on the Marketplace.
Any feedback would be appreciated.
Cheers.
You don't need a rooted device to test apps, and a properly installed Eclipse setup will automatically run and debug your app on the phone itself regardless of whether the phone is rooted or whether you are registered as a developer on Android Market. In fact, you can start without even having a phone. The Android SDK for eclipse has a very functional Android emulator included.
But, if you want to browse your db data from developed application root will be helpful. Anyway root is not required.
Yep, you definitely dont' need a rooted phone to develop for Android. I developed my first app and published it before rooting my phone.
As Gene Poole said you can dev even without a phone. I use IntelliJ instead of eclipse - it has Android plugin too, but I think IDE is just personal preference. Though testing on an actual, physical phone is highly recommended.
afaik, there are some cases where you'll need a rooted phone, eg: if you want to make a screenshot app then you might need to root your phone. Though I think this is only if you're doing super funky stuff then you might need a rooted phone, but normal dev should be fine.
Hi all...
I was wondering if and how could be possible to port apks built for one tablet to another of different brand, i.e. I liked a lot the email client of the Samsung Galaxy 10.1 (with multiple email selector and recycle bin emptying feature), but many others are worth a try...
When I try simply to push the email.apk to my Iconia, it won't work (the icon diasppears from apps), if I try to install it I obtain an error (app not installed) probably due to a signing mismatch... I'd like really to learn how to do this, if possible. This knowledge will complete and accomplish any further request about personalization of our tablets, could be a great improvement being capable to get out the "system" you really want...
I tried to figure out how to use apk manager, but it's quite really difficult without some good suggestion, the thread is more than 200 pages long, and I got stoned before simply find out any usefull info about "system apks"...
TIA
I would like to know also. I want the Facebook account integration from the Galaxy.
Some apps are license by that manufacurer and would be considered wares.its a gray area please be careful. And make sure the Dec of all apps you use get paid
simple answer
couple of APK for galaxy are using CORE framework of the galaxy tabs firmware itself
that will not be possible to just install those apk.
such as
touchwizUI
status bar overlay (I mean the minimode menu with quick access), the quick access settings...
Email and Social things
It's their "Marketing Strenght" so they didn't make it easy to be "stolen" by other brands
I run just the dual clock, the memo, and eReader from samsung but I am running a custom firmware so that change many things
At this moment only 1 custom firmware does use Samsung as base, Virtuous Galaxy... but I have to warn that using custom firmware without following backup steps strictly or knowing the consequence is to AVOID.
sanaell said:
...
At this moment only 1 custom firmware does use Samsung as base, Virtuous Galaxy... but I have to warn that using custom firmware without following backup steps strictly or knowing the consequence is to AVOID.
Click to expand...
Click to collapse
first of all, thanks for your answer, and your warn...
I'd like to go deep in the question, as you correctly affirmed, virtuous galaxy's based upon Unity v5 kernel, but virtuous picasso also lays on the same structure, doesn't it?
right now I'm running m-dj's picasso 1.1.0 rom, wouldn't be possible, with any required modification, to run elsewhere coming apks?
I mean, think about having two different pcs, both with the same hardware and the same linux distro and kernel, wouldn't seem wierd that on one pc you could run an application that won't run on the other?
I'm thinking, if they wanted to protect their components why they didn't simply wrote hardware oriented kernels? Therefore, its a fact that on my iconia I can run either a Samsung or an Asus based rom, according to this, where is the cross-platform limit? I mean, is there some sort of documentation defining which part of these Android system is "really" open, under GPL, GNU or whatever structured property info list? I can't find any browsing the net... or maybe I've found too much, its almost impossible to understand what you can and what you can't...
I do not know the whole answer to this question.but I do know this much.if you have any.apk application that is for sale on the market or was installed for free on any device that it was not pre installed on. I would thing it would be considered pirated. As you did not buy it.nor did the developer give permission to run the API on your device.thou some apostle you buy can be installed across the devices you have registered with Googler
if im wrong people please correct me.I just think that developers that fallow rules and write great software MUST BE PAID.
erica_renee said:
I do not know the whole answer to this question.but I do know this much.if you have any.apk application that is for sale on the market or was installed for free on any device that it was not pre installed on. I would thing it would be considered pirated. As you did not buy it.nor did the developer give permission to run the API on your device.thou some apostle you buy can be installed across the devices you have registered with Googler
if im wrong people please correct me.I just think that developers that fallow rules and write great software MUST BE PAID.
Click to expand...
Click to collapse
Right and Wrong
if the application is a paid application and wasn't preinstalled on your tablet it is not really legal
if the application is free but cannot be installed from the market and you install it from other sources it's ok
if the application is from another tablet, and exclusively on this tablet do not expect run it on the stock firmware of your tablet, you have great chance to cannot run it simply, or get some random FC (such as from GALAXY because they use another structure on the file directory... so some application try to get the path and it's return an error, Or they are implemented and integrated with the kernel and that... you can't pass throught)
On my tablet I do run
ASUS widget
Galaxy widget (dual clock)
and some other application not from ACER.
now to get back to the OP
. you are on a virtuous... why not go on the virtuous Galaxy !!! if you want galaxy application... I don't get it...
sanaell said:
now to get back to the OP
. you are on a virtuous... why not go on the virtuous Galaxy !!! if you want galaxy application... I don't get it...
Click to expand...
Click to collapse
I agree to this explanation of yours, when I flash a rom different from the original, aware that's coming from a different brand, I'm more or less conscious that I'm doing something wrong. mmmf... that's philosophy... won't lose your time
The point is, I've tried the Galaxy rom, I don't like the interface, I don't like the extra bar functionalities, in short I mostly appreciated the Email.apk, most of all because it has a convenient "select all" function, even in the recycler bin (I can't stand with an email client stupid like the one embedded in the Acer version). In any case, given the impossibility to get the Galaxy Email, I'll buy a new one on the market...