Well, I've looked into it. The android-ndk contains a file STABLE-APIS.html which says the following:
So there is some basic functionality to create native applications. However, most of this is a JNI wrapper so it's not much better in terms of performance to do it natively. Also note that only the high-level parts of the operating system are created in JAVA and run in a highly optimized Dalvik VM, so there isn't THAT much to gain anyway. Any performance critical part is natively coded.Starting from API level 9, it is possible to entirely write an Android
application with native code (i.e. without any Java). That does not mean
that your code does not run inside a VM though, and most of the features
of the platform will still need to be accessed through JNI.
That is true. It's also the reason why I'd choose Java instead of pascal to develop normal apps. It's a huge amount of work to make all UI API's available to pascal and the benefits are not significant. When coding games however, it's actually worth some effort to get maximum performance.They are available, but there are no Pascal header translations for that - at least not that I know of. Also, the C APIs aren't really for usual GUI app development, they are designed for OpenGL apps or other low-level stuff.
I'm actually playing with this a little, to see if I can get a pascal game running on my android device. Today I played with JNI, which will be a very important part of the puzzle. I'll keep you guys posted and I might write an article if I have got something interesting to share. In the meantime, I can use all the advice and bits of info you can give me. For example, how does one do game audio on an android device
Last edited by chronozphere; 29-10-2011 at 10:44 PM.
Coders rule nr 1: Face ur bugz.. dont cage them with code, kill'em with ur cursor.
You know Cooper (oxygene for java) isn't such a bad product and it doesn't cost such a fortune as Delphi does. Maybe it would be worth it to ask to get on the beta for it? RemObjects does intend to support the Android platform directly so perhaps it would help streamline any Android development.
Just a thought.
Project Cooper does indeed support Android directly - I have tried some of the sample projects that comes with it and they compile and run on my Android tablet...yay!
This is even on the beta version too
Just send an email to:
marc hoffman (mh@remobjects.com)
and he should fix you up...
cheers,
Paul
Last edited by paul_nicholls; 30-10-2011 at 10:02 PM.
Games:
Seafox
Pages:
Syntax Error Software
itch.io page
Online Chess
http://gameknot.com/#paul_nicholls
More info here:
http://www.remobjects.com/oxygene/java.aspx
cheers,
Paul
Games:
Seafox
Pages:
Syntax Error Software
itch.io page
Online Chess
http://gameknot.com/#paul_nicholls
Oh that's pretty cool. Nice it works well, even in the beta version.
I'm not sure whether I will use it since I'm comfortable with JAVA. I only truely benefit from pascal when it is actually compiled.
Coders rule nr 1: Face ur bugz.. dont cage them with code, kill'em with ur cursor.
I haven't done much with it yet, but it is much nicer having the 'Pascal' syntax instead of Java to be honest
Games:
Seafox
Pages:
Syntax Error Software
itch.io page
Online Chess
http://gameknot.com/#paul_nicholls
What if you wanted to make a cross-platform game for both android and iOs for example? One code-base not 2 would make thinks go half as long no?
If I got Garland's Quest on the iPad and then wanted to share the love with Android users I would strongly consider using oxygene for java to port it. I may even think about using prism to get it on the XBox 360 too, but that's a different topic.
Yes, being able to compile to both android and iOS is very interesting. But how is that possible? Cooper generates java bytecode, which doesn't run on apple devices.
Coders rule nr 1: Face ur bugz.. dont cage them with code, kill'em with ur cursor.
If your core game code is in object pascal you can easily rewrite the rest for each platform. So you take your object pascal units and other game specific code and create a new Xcode project using the Objective-Pascal templates and put them in there and rewrite the code required to support the API and other iOS specific framework to work with it.
Bookmarks