Android development without SDK - java

To get a better understanding of what I'm actually asking let me outline my situation (I think the wording of my question is off, but couldn't think of how to word it better).
I'm currently working in a team of 4 people to develop a basic OCR app. I'm focused on the algorithm side, developing the pre-processing and implementing the OCR. I want as little to do with the app side as possible; as from what I've read so far, it is quite a steep hill to climb and I have enough to do without learning to develop the app from scratch.
So my questions are:
Is it possible to develop my code in a black-box style that I can hand to the app developer and say "Here's a list of functions, go for your life"
Is it possible to do the aforementioned in a way that I can test without the Android emulators?
Is it possible I can do all that without even needing the Android SDK? (given that I can develop my code to deal with specific formats of information. e.g. int[][] for pixel data)

You can certainly write and develop the algorithm without a dependency on the Android SDK, and ship an artifact (whether source code or a JAR) to the Android developers.
However, you will be able to reduce the length of the feedback loop if you at least have an Android test project that takes whatever artifact you ship to the Android developers, and run at least some tests on it - given the number of differences between the Android and Java SE runtimes, it is practically guaranteed that you will run into bugs due to platform differences.
Update: If you write native code or use a native library, I do not think you could easily give a working artifact without using the Android NDK.

As long as your code has no reliance on the Android SDK then certainly you can develop and test without it. Just be certain your code also has no reliance on other APIs (AWT, for example) which are not on the Android platform if Android is your intended target. Finally, be sure that testing is complete within the Android environment, once you're satisfied things are working in general.

Related

Compiling LibGDX on Android with Jvdroid

I am getting back to coding Java after two years, which I sorely missed. I need to set up an environment on Android for game making, so I purchased Jvdroid for the ability to process Maven files from GitHub on my phone. Jvdroid resembles a similarity to IntelliJ from JetBrains with much less features. LibGDX offers a Project making executable JAR, yet the file limits it self only to Desktop operating systems.
My problem then focuses on getting a LibGDX Project for a hopefully simple set up. It is possible that Jvdroid may still say no to downloading required libraries for compiling. I will not be able to use LibGDX I think on Android, if that proves true.
I am familiar enough with GitHub, where I can just download a working sample Project for LibGDX from a different programmer's repository or LibGDX's own. Flappy Bird is a bad example, but that serves just to give you an idea.
If that concept fails, then I would possibly consider an alternate game engine like Cocos2D or Haxe. I need some thing with GLTF file support in the future, because of my love for Daz3D. I also restrict my coding to Java.
I appreciate insight for how LibGDX may possibly compile and run on Android. I believe producing an APK would be comparably good effort at that far of a point. I am aware a couple of other programmers have successfully done such with minimal Project files at the least of it all.
Thank you for reading and your time.
Not familiar with Jvdroid, but I would have looked at Termux and see if your device's OS version is compatible and your device has adequate storage (RAM/Flash). Termux simulates a Linux terminal environment (with limits), so it helps to be familiar with the command line interface. Do realize that there are preferred places to download as Google Play policies no longer compatible.
A quick search brings up projects like: https://github.com/ravener/libgdx-termux which may be a jumping off point.
Of course, if you can do development on a PC - your experience will be better, due to each new Android version adding restrictions to such an environment.

Python for Android Apps

I've learnt python recently and I want to make an app for android. But everywhere on the net, it seems Java and Eclipse are the only ones that can be used.
So, my question is:
1) Can I use python to make an android app?
2) What kind of platform should I use to make an app with python?
Thanks guys!
If you're just looking to run Python scripts, try QPython.
If you're looking to make your Python code run like a native app, or just something more robust than the above, try SL4A.
If you're looking to effectively use Python as a library, and compile an .apk with the Python library included, try Kivy: github.com/kivy/python-for-android.
That said, you'd likely get a lot of benefit from learning Java, and not just for programming natively in Android (which would give you access to a much wider feature set and make your app run more efficiently).
Check out the Scripting Layer For Android, aka SL4A.
Here is a blog for getting started. The blog promises more entries in the series but there don't seem to be any. Still, it is a great starting point. There's quite a few parts to pull together so be patient and check the bottom of that blog entry for dozens of useful links.
If you want to contain everything to the Android device, including the IDE (pretty slick), check this out.
Here's a book from APress that could help with more advanced concepts: Pro Android Python with SL4A

What are the limitations of Python on Android?

I am getting ready to start a little Android development and need to choose a language. I know Python but would have to learn Java. I'd like to know from those of you who are using Python on Android what the limitations are. Also, are there any benefits over Java?
Most of the points mentioned by Andrew stand, I just wanted to mention that python can be and is used for full fledged Apps published on GooglePlay and even iOS. I can't speak for other frameworks but here are some examples of Apps published using Kivy.
Process Craft Google Play iOS
Fantasy War hammer
PreseMT is a multitouch presentation maker
Memo robots
Ground Truth
Kaleidoscope
Showcase demo example from Kivy project
DefelectTouch game iOS
Bargenius and many more...
On Packaging we have tried to make it as simple as possible, we also provide
A pre-built VM that can be used to make your apk with you having to do nothing except
copying your project dir over and running one command.
On GUI, yes the ui is custom, by default(tries to match Android's Holo theme). However it can be customised to resemble other look and feels, although I haven't tried it personally.
Oh and as long as one is talking about python based apps on android, I found this project mentioned on stackoverflow PyMob, their apps page mentions some interesting apps .
I investigated this recently for similar reasons. My conclusions were that I could not use Python to develop a native-looking application, which is what I wanted at the time. Specifically:
Python can't receive callbacks from the Java UI classes, so you can't use any native Java UI elements such as ListView, etc. Only dialog boxes etc. are easily available. If you have a totally custom UI such as a game, you can try PyGame for Android, or you could look at Kivy, which also uses PyGame.
Packaging of Python applications is very difficult, especially because the Python interpreter is not included on Android by default. The Kivy and PyGame teams are making some intermittent progress on this.
Because of the aforementioned issues, Python is essentially never used to make full fledged applications published in the app store, and so the literature on how to handle the many sundry issues with SL4A (Scripting Layer For Android) is very thin.
So, if you want to make an application that uses native UI elements, that you can actually distribute in the Play Store, or both, Python is regrettably not an option.
I have developed Android Apps on the market, coded in Python. Downsides:
Thus far my users must download the interpreter as well, but they are immediately prompted to do so. (UPDATE: See comment below.)
The script does not exit properly, so I include a webView page that asks them to goto:Settings:Apps:ForceClose if this issue occurs.

Can a systems developer with NO Java programming experience write Android Apps?

I am basically a embedded systems programmer on linux. However, I would like to try my hand at writing Android applications. With no previous Java experience, are there GUI toolkits or something that can help me. Or is it mandatory to learn Java.
Any links, tips for newbies like me will be very helpful
There are various app builders available for those who do not want to do any programming but they are very limited in the apps they can produce. Basically, such builders offer the developer a series of templates which the developer personalizes before building the app. For instance with a video player template, the developer would choose the look and feel such as background colors etc but the rest of the app would be fixed.
Here is an article that looks at some things to consider before using a No-Programming app- builder
http://hypernextandroid.wordpress.com/2012/09/04/coding-and-no-coding-app-makers/
As you are already a programmer and the Java route is extremely intensive then you could try Basic4Android, HyperNext Android Creator etc. These have much easier learning curves than the Java/Android SDK approach and can still produce native apps.
I am 2 months late, but I have been using a software called Titanium Studio to develop android apps. You cannot write advanced apps like games, but its good for developing simple apps. If you have a mac, then you can develop for iOS as well.
You will basically use javascript and PHP to write your app, which are much easier than learning JAVA.
Cons-
It includes most of the commonly used functions from android, iOS SDK but it is missing a lot as well.
The size of the apps will generally in range of 10-20 MB.
Apart from that, If you want to create a simple app and want to do it quick Titanium is the software to use.
Yes you can. You just require an Android tutorial to get started. Try foolowing links:
One
Two
Three
Four
Its better if you first try learning some basics of Java and then try for this.
Hope this helps.
yes.
App Inventor for Android - its simple and easy, no need of any prior Java programming knowledge
Eclipse with ADT plugin - the better way to develop applications - start with Hello World
For UI development - try inbuilt UI editor with ADT plugin or DroidDraw
Gotta learn Java. But if you're familiar with C then the syntax will be familiar. It's object model is pretty simple and it's libraries are great, so it should be fun. Android, of course, has it's own constraints and best-practices.

Generic Java mobile development

I'm working in a Java-oriented shop and we're starting to adapt our products to mobile devices now (mainly focusing on smart phones). A separate native app is already in the works for the iPhone, but we would like to make a generic Java/J2ME version for any other devices.
My question is, how feasible is this? And where is the divergence point generally? ie We don't mind if each device has some variation in it's specific Java toolkit and they require separate builds, and thus all we can have is just have some basic framework stuff in common underneath. We're just trying to architect this in such a way that as much of the basic framework can be re-used as possible.
The main target platforms we're looking at are Android, Symbian, and generic Java-enabled mobile devices.
Anyone have any advice, pointers, or good links they can point me at?
The biggest divergence point will be the UI. You will need an entirely seperate UI for an Android App vs. a J2ME app.
If your app does not depend on any hardware components, client side databases, etc. you should be able to reuse any other data model/ backend processing classes.
In my work we have a common Java code base that is used in J2ME, Android and BlackBerry and we have had to address some significant issues:
As Mayra says UI will be huge difference, so you are better off having different UI layers for J2ME and Android.
To make it compile for J2ME you will have to make your common code Java 1.3 compatible. This requires careful design, and nightly builds that compile for each of these platforms.
Because of the above reason we found it a good idea to write your application/game module in Java 1.3 compatible mode.
It also helps if you have a good release management system, because you now have common code for multiple platforms, so, versions, release planning, branching code and its impact on release, all these can become a major headache without careful handling.
If you are planning cross-platform compatibility in modules like C++ and its compatible Java application engine then do yourself a favor and write modules in human understandable format, for example write SaveData class, instead of SaveToRMS in J2ME and SaveFile in Symbian. That way you are encapsulating platform dependent implementation while making it easier for the developer to know whats happening in the class.
Lastly, know that it will take about 6-9 months for a framework like this to mature, so be patient, and good luck.
Well, if you build a web application, all you can do is to do some modifications to adapt it to mobile browsers (if you design it well, there will be only css modifications).
Since you're talking about a shop, it makes totally sense to be online.
I would follow this path.

Categories