Android apps always part of the OS source? - android

I am trying to customize the Email app that's at packages/apps/Email in the android source. However, I noticed that it has a dependency on the OS/SDK that it's part of and is not really separate.
For ex., if I pick up the Email app from the latest master, it will run only on 4.3 android devices, and not on 4.0.x. The app uses certain features of device admin that are there only in 4.3 and is not written to work on the previous versions.
And if I take the app from 4.0.x android source then I am missing the latest and the greatest of the Email app that's in master.
Is there a reason why the apps are not maintained independently of the OS, and built to be backward compatible?
Thanks.

Related

Android 4.4 Locked Task Mode

I'm creating a flutter app that will be installed on a Samsung Galaxy 7-inch Tablet with Android KitKat (v4.4). It will be the only app on the tablet, and will be implemented such that it loads when the device is powered up, and the user will be unable to exit the application.
I've found this on the Android Developer docs, but it only applies for versions 5.0 and over.
https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode#java
I have not been able to find any documentation/tutorials that could possibly assist with this, without using a 3rd party application such as Surelock and Kioware.
Is there a way to implement the above for older Android version (in my case for version 4.4)? Thank you.
As you are targeting an older Android version you will need to implement some workarounds, but luckily there is a very extensive tutorial on how to do just that for Android 4 which you can find here:
http://web.archive.org/web/20201101145703/https://www.andreasschrade.com/2015/02/16/android-tutorial-how-to-create-a-kiosk-mode-in-android/
As this is very platform specific you will need to develop directly for Android and then connect it to your Dart code with this tutorial.
If you control the devices your software will be installed on, you can also opt for the 'root' way of doing things which is described here:
Enabling KioskMode in Android 4.4.2 with Root

wear OS - http post from smartwatch

I want to create android application for smartwatch with a cellular internet connection that send HTTP post to a server.
What android version support should i have?
I saw that android 5.1 support cellular network but in Wikipedia it written that only android 7.1.1 support cellular data.
Watches and Phones have thier own OS. Perhaps you found something built to look like a watch that is actually using the phone OS. i wouldnt doubt it as the wear playform is not given the same attention...
But at least in part the actual watch versioning is confusing.
it started out as Android Wear 1.x 2.x then reset to Wear OS 1.x which is now up to version 2.6, all while the latest version for Pie was again renamed to letter version, which is version H... Go figure.
Also if starting now at i wouldnt worry about the older Android Wear hardware, and not even sure if you could buy a new 'Android Wear' watch at this point, so any watch that advertises 'Wear OS by Google' will support Wear OS.
Also I might concider getting a watch with the physical USB connector so you can debugging on the device itself... otherwise you have to manage debugging over bluetooth which at least for me is not always stable on one pc, and have never gotten to work on another...
But such advise is rather particular to me...
Update: it strikes me that you might have been speaking about the target version of Android, which yes admitingly is yet another version to get familiar with developing with wearable android...
Usually it is seen as the target or compile versoin, and from what Im aware the SDK is compatible from version 7.x to the latest 9.0... but perhaps there are eirlier versions that work with the older Android Wear down to what you mention 5.x Im unsure.
Currently i target 8.0 but moving to 8.1 to get at updated libraries im interested in.
And then there are the API Levels to get familiar with...
Ya honestly it's really confusing...

Faking android version for a specific app

I recently upgraded my Android phone to have Android 8.1 (LineageOS 15.1) only to realize that my office mail client does not work with it. When I consulted with the concerned team in the office, the only options I was given is to either wait till the issue is resolved (which will be late this year) or roll back to previous Android version. Now, I don't want to roll back my Phone to the previous version.
Now I am not sure if it's possible/feasible, but I was wondering if there is any way to simulate Android version for a specific app. There are application which can make your device to appear as a completely different device (I tried Market Helper), but couldn't find any option to simulate prior version.
If Android API is backward compatible, shouldn't it be possible to simulate version to specific apps? (I understand that this may not work completely, but it should be worth a shot).
Thanks in advance.
Not sure about specific app, but you can edit your device build.prop and change OS version to one, you want.
Đ•dit Android Version by locating ro.build.version.release= and changing the current Build Version.

How compatible are different Android versions?

So, I'm current trying to learn and become a programmer. I've recently worked with C# but I really want to get into mobile apps, since most small projects really tend to fit better as mobile apps, rather than desktop apps.
The easiest, for me, seems to be the Android platform, but I'm having a problem... I don't own an android phone, but I could possibly purchase an old model. Naturally these will have an older version of Android, so here is my question...
How compatible are these different versions? Like, are there major differences when moving from Icecream Sandwich to Jelly Bean, or from KitKat to Lollipop?
How do app developers deal with this array of Android versions?
When you develop an app for an old version of Android, it will run without errors on all newer version of Android, unless you do something involving low-level stuff like direct kernel calls, but you will never encounter such issues if you only use Java.
Worst issue you'll see is your app visual style looking outdated on newer devices.
If you target API level 23 / Android 6.0 Marshmallow, you will still need to run your app on Android 6.0 emulator, to be sure that it won't crash when using new Android permission dialogs to ask for SD card access etc.

Do apps built for old android versions run on android 3.1

For testing purposes I need to buy an android device. Can I get a tablet device with android 3.1 honeycomb and use this to test apps developed on older android versions? Are new android versions backward compatible with older apps?
Not entirely. In many cases yes, but there are exceptions:
There have been some api changes, and more importantly, there are a lot of apps out there which did things that weren't entirely proper, but worked on the devices they were developed for.
Some older apps were written to use input devices not present on recent phones or tablets - hardware trackballs or dpads, buttons, etc.
Also no small number of older apps will display in a phone-sized area leaving the rest of the tablet screen blank.
Unfortunately, the flip side of the vendor customizability of android is that if you really want to do comprehensive testing you need access to a variety of devices, even for a single api version.
Can I get a tablet device with android 3.1 honeycomb and use this to test apps developed on older android versions?
Yes.
Are new android verions backward compatible with older apps?
Yes.
Back version is compatible with android 3.1 but only simple application means without any animation (Like Games) and some special features etc.

Categories

Resources