Python and Android apps - android

I've been using Python for about a year now and would love to start writing some Android apps using Python.
I've been researching both Kivy and SL4A and I'm a little confused about something.
When you develop an Android app using Python and one of the above, does the user of the Android device need to download anything special in order to run? Or is it all transparent to the user?
Thanks

The user doesn't have to install anything, it's all transparent to the user, but keep in mind that the .apk will contain a full python installation, and thus you simply can't write apps that take less than about 10MB.
On Google Play there are some sample applications made with kivy, for example there is a touchtracer app that you may download to see if kivy would work on your device.
kivy requires OpenGL ES 2.0 for graphics, which is not always supported, even though most modern smartphones support it(I have a chinese B63M and kivy works fine with it).
The OpenGL ES 2.0 support is provided in Android 2.2+.
You may find other information about packaging for Android in this answer.

Related

Setting up OpenGL ES 1.1, and my android environment

This may be a bit difficult, but I have a fairly complex question:
I'm fixing up an old Android phone I have from 2010 (very crap phone), to play with and experiment on. I want to write some OpenGL ES 1.1 programs (preferably in C) on it, but I have no idea how to set up my development environment.
Specifically, my question is this:
How can I set up my android device to run C code, and then link OpenGL ES 1.1 with it?
Would it be better to replace the OS (Android 2.1) with Ubuntu (or something else entirely)? I'm not sure it could run it very well, but it might simplify the process of getting the C code on it since I can just compile with GCC and run.
I've never really done something like this on a phone before (I've dabbled in the Java side of android), so any advice is appreciated.
Thanks!
You will need to setup your device to be able to deploy and debug with your system, which varies from device to device. If you've already got development in Java working on the device, then you shouldn't need to do anything additional to the setup device to develop in C/C++.
For your development machine, you will need to install at a bare-minimum the NDK. The NDK is also bundled as a package from several other sources, such as in the Tegra Android Developer's Pack, and now also Visual Studio 2015 RC. Which package you choose for development is a matter of preference.
In terms of developing for GLES 1.1, as far as I know, there are not any 'official' samples for developing for it, however, there are several tutorials around. In the NDK, you will need to #include <GLES/gl.h> to get the API. You can then take a look at Khronos' specifications on its usage.

Blackberry Server : "Qnx/Android" is not supported

I'm converting my Android app (apk) to Blackberry OS 10 (bar).
Everything is ok if i install the bar file to my BB.
But when I try to upload to our BB server to deploy to software to the Z10, i have the problem:
"Qnx/Android" is not supported
I found the root cause here:
It is currently not possible to add Android applications to the work
perimeter on the BlackBerry Playbook tablet or BlackBerry 10
smartphone; this is by design.
Since all applications added to the BlackBerry PlayBook tablet or
BlackBerry 10 smartphone via BlackBerry Device Service are installed
in the work perimeter, Android applications cannot be installed.
Alternatively, Android applications can be successfully downloaded
directly into the personal perimeter on the BlackBerry PlayBook tablet
or BlackBerry 10 smartphone.
What's should i do now?
I need to install my app to more hundred of BB10.
Can i reuse my Android code?
If can't, what's the best solution, best language if i must you write all the code from scratch.
Thanks you
Possible duplicate of
Deploy repackaged android (BB10) APP in Blackberry Enterprise Server within workspace
You can't reuse any of your code.
The best option depends on the type of application. If it is reasonably complex, with interaction with on device stuff like location, then Cascades/C++. Alternatively, you might consider html5. Have a look round here for more:
https://developer.blackberry.com/
Playbook is another curve ball. If you have to support that then you can't use Cascades.
And to be honest, there is a certain amount of personal preference involved here too - what do you like writing in?
Just a FYI, it took me about 6 months, part time, to feel fully comfortable with C++/Cascades. This was from nothing, no C, no C++, no experiences of GUI design tools and a different IDE. But I created my first app, a really simple one, in two weeks.

Blackberry Android Native Live Wallpaper?

I am currently looking into porting some of my Android Live Wallpapers to Blackberry. Is this possible?
I can't seem to find any info about whether or not Blackberry devices support Nartive Android Live Wallpapers.
On initial release RIM stated that Live Wallpaper would not be supported, and I haven't seen anything to the contrary. Other features available on an actual Android device such as Java Native Interface are also unlikely to ever be supported. Remember that the BlackBerry Android run time environment is meant to allow Android Java applications to run. You might think of the BlackBerry run time as providing a Dalvik VM (though I don't think that is technically accurate). Each Android application runs in its own copy of the run-time environment. It does not provide the entire Android OS as a guest OS like VMWare, VirtualBox or QEMU would.
I don't believe that it will ever support Android Live Wallpapers. Every ported Android app runs in special runtime isolated from rest of BB OS.
On my opinion Android ports are just temporary solution that RIM chosen to bridge the gap when not enough native apps.
Cascades/QML is awesome framework so I'm almost sure that Android apps will be very quickly replaced with native equivalents.

Convert Windows Mobile 6.1 app to Android

I have a fairly large windows mobile app (written in NETCF 3.5). Those in power at my company are wanting to convert this app to run on Android.
What similarities are there between Android development and Windows Mobile (not Windows Phone) development? Specifically:
Window Forms (ie the UI)
P-invokes (my app has a lot of these)
WCF/SOAP web services support
C# and Visual Studio Development tools
Also, if you feel inclined, I would like a general statement on how a conversion would be from someone who has done it. (Keep in mind that I have never made an Android app.)
Background:
Someone (a non-programmer) here did a Google search and found a "tool" that converts Windows Mobile apps to Android for you (push of the button kind of thing). That person now has everyone believing that this conversion will take no time at all.
As a developer that has worked on several platforms, I just find that really hard to believe (though I would be happy to be wrong).
check out Will Google Android ever support .NET? as it might be what you're looking for. Not sure how well it works, but if the non-programmer is willing to front the money, I say give it a try
Update:
Looks like mono switched companies:
http://xamarin.com/monoforandroid
The short answer in NONE. Android is running Linux that is restricted to Java applications. If you want to port an application from .net to Android, you are looking at a total rewrite.
Sam
There is the monodroid project, which takes .NET applications and makes them run on Android's OS, but it's still very experimental and in no way ready for production applications. Otherwise, to mirror "Sam's" comment above, there are no similarities really. I've been building mobile apps for 11 years (delivered over 60 on various Windows flavors) and the Android model is very different than what you might have done in the past on Windows CE 5 or Windows Mobile 6 type systems.

Developing for Android in Java or Adobe AIR or Titanium or PhoneGap?

I have been developing for Android since some time now and I found Java as proper way of doing development in it. But, now there are number of options available for developing in Android such as Titanium, PhoneGap and Adobe AIR.
The question is who will come as a winner for Android development. I have read lot of comparisons between Titanium, PhoneGap and native Android development. Now, with Adobe entering into it too, what is the future of Android Developers who develop with Java as the programming language.
Since, if one can develop for Iphone and Android with Titanium and Adobe AIR then why will one want to waste time and money for separate development.
The biggest reason I can think of is that using the native language/libraries of the platform (in this case iPhone or Android) is that it will allow you to provide a user interface/experience that is more in line with what the system designers intended over what will likely be possible with something like Adobe AIR.
That doesn't necessarily mean that AIR is bad, or that you might not be able to develop a good application, but since you'd be targeting multiple platforms with the same application code, and each platform has it's own subtle (or major) differences that you can't always account for, you will inevitably be forced to take a "least common denominator" approach to building an application that will run on all of your target platforms and behave consistently across them as well. This might not sit well with some users who expect a certain level of capability as you may not give them a consistent user experience compared to other native applications.
This is a long-standing issue with cross-platform application development -- the design philosophies and behavior of each system are intentionally different (otherwise why would anyone use them?), so your bound to run into problems making an application work 100% the same across them all.
As someone that has done cross-platform development in the past, I can say that while you can do it well in some cases, and using something like Adobe AIR might be a good avenue towards getting more familiar with a particular platform, but a lot of times it's just more prudent to buckle down and build an app using a system's native libraries/languages over a cross-platform solution.
It is quite simple actually. Developing an Android application using Java (the normal APIs) will allow you to a) target possibly all Android devices as all share the same base API and b) it won't put limitations on your application (or at least no limitations with the only limitation being the API).
Now PhoneGap, Titanium and Senza are all web-based frameworks which have certain limitations. You can't access certain functions of your phone as they simply are not some kind of replacement API it's just a framework.
Now Adobe AIR is another story. I'm not sure what functional limitations Adobe AIR will have but I know that there is quite a limitation when it comes to what devices you can target. There are some minimum requirements for Adobe AIR to operate which are
Android Device Requirements for Adobe
AIR
Google Android 2.2 Operating system
ARMv7-A Processor OpenGL ES2.0 H.264 &
AAC H/W Decoders 256 MB of RAM
Which means you can target devices with earlier API versions.
Titanium compiles to native platform controls, but you must to use web languages like HTML and js to develop your application.
With special version for each platform you can design UI following system guidelines.
There seems to be an overall confusion regarding what Titanium is... It compiles to native platform controls.
The majority of the respondents have incorrectly stated that it is web based and that is not true.
However, that is true when it comes to phoneGap

Categories

Resources