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.
Related
My question is - is it possible to compile a C++ library that uses some desktop features on mobile device - in this particular case the Irrlicht Engine? I know there is a port out there that uses OGLES drivers, but it also combines using the NDK. I would like to know if there is a possibility to build that library with such a tool like CCTools despite the fact that mobile devices use OpenGL ES - maybe some kind of equivalent libraries, that fit both mobile and desktop environments? There may be some incompatibilities, I know.
The system of input and output doesn't matter at the moment.
And of course - I haven't found the question that fits my expectations.
I wrote an article about porting desktop OpenGL apps to Android that might help:
http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1
I don't see the advantage of using CCTools rather than the NDK. I think the differences between OpenGL and OpenGL ES would be the biggest problem.
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.
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.
Is it possible to use Android OS for creating apps for Blackberry phone?
Although Android and Blackberry both use Java, they expose very different application APIs to developers. So I don't think it is possible to run Android apps on a Blackberry - YET. RIM has already announced that they are planning on supporting Android apps on the upcoming Blackberry Playbook tablet.
Please clarify. Develop BB apps on an Android machine? Or run Android OS on a BlackBerry device?
The former is plausible, albeit painful, and you'll still need an Android device or emulator to debug. Android machines (read: smartphones and tablets) are not, as a rule, content creation-friendly.
The latter is a epic hack, probably doable but nowhere near straightforward. And will surely void your warranty :)
Despite both platforms being Java-based, the runtime environments are quite different. Neither BB Java nor Android Java is Java ME compliant.
EDIT: Officially, it's not possible to run Android on a Blackberry device. They use their own operating system. Unofficially, who knows. But even if you manage, it will be a hack, not a supported configuration.
Converting apps from Android to BB - it will be more of a rewriting. Unless there's a well-isolated business layer (unlikely in the mobile software world), it will be a complete rewrite rather than conversion.
If you want to create BB apps, download Eclipse and Blackberry SDK, read the Getting started guide, and code away :) Knowing or learning the Java language would also help.
In addition, please note the difference between applications written "on" Android and "for" Android. "For" means "running on Android", "On" implies the actual coding/compiling was performed on an Android machine.
Not all features of Android are supported in Blackberry OS 10, find the link for the same.
I am planning to develop a game for all of the mobile platform and have pretty much zeroed down on the concepts of the game. but the only issue I'm facing as of now is that I have no idea what would be the best libraries + 3d Engine to us to achieve the best results on the hardware on some of the upcoming mobiles. I'm talking about the iPhone 3GS, the new WinMo and Android devices with the famed Snapdragon, other processors from Samsung, ARM, Qualcomm and even Intel and AMD.
as of now i plan to use the ogre libraries for now, but then what will offer portability?? This is much more of a design question rather than just coding. Any help is appreciated, others who wish to collaborate are very much welcome too. just drop me a mail.
I don't know much about Window Mobile, but (right now) there is a barrier to compatibility between Android and the iPhone: managed vs. native code. Android highly encourages you to write in Java, whereas the iPhone requires Objective-C or C++ (or C). Though Android does have a native development kit, they don't currently expose many libraries. They will add more APIs over time, but the Android devs will continue to encourage Java development, since Dalvik bytecode will run on any new device.
This is just my opinion, but I would focus on just one platform at the start. Pick your primary platform, write your core game code in portable C++ if you can, and keep the platform-specific parts separate from your core game code. Your goal is to get your game published. Once you have some money coming in, then start focusing on your second platform's port.
I would recommend you to use OpenGL ES and STL. Both Android and iOS platforms become more compatible with OpenGL and STL library, and it looks like every other mobile platform would follow this course (except, perhaps, Windows Phone 7.)