Im long time c++ developer . and I like to start to develop 3d applications and games for the android , now I do know I wil be limit with java VM
So I like to start to develop with c++ with the NDK API , before I start , what version should I start to develop ? 2.3 ? can I do complete application just
With c++ ? what problems should I expect ? can you please point me to articles on the subject.
You can write a complete android application only using c/c++ code. But i would not recommend it due to the fact that you have to use android 2.3 or above and we all know that most android devices out there today, are likely to not ever receive the 2.3 update.
I would recommend you to use android 2.0, because android 2.0 have support for OpenGL ES 2.0 (only) in native code. The three limitations that i know is that you have to "start" your app in java code, you have to grab input in java code (not 100% sure of this) and you have to handle audio in java code. Although you can handle audio in native code if you are targeting android 2.2 and above, but again i would not recommend it since there is a lot of devices out there with 2.1.
Hope that answered some of your Q:s, sorry for tha bad English btw.
Edit: download the Android NDK and read trough the docs, that might clear more things up for you.
Related
Since few days i started developing android apps after 5 years of c/c++ coding , i know the need to learn java for android and i have no problem with it , but i prefer to continue using c/c++ , after long web search i found that the simplest way is by using c4droid ,since i don't currently have a android device , i think that my best solution is to run c4droid under blue stacks emulator and that way i will have no need to setup the NDK or "c++ builder" , now i have a little doubt , if that way is useful for serious game programming !! i know that c4droid support sdl and opengl and theoretically i can append any library in it , but can it reach such degree of confidence especially under blue stack emulator ?
Using the Android SDK is preferable over a simple app, however no one says that you cannot use it under Bluestacks. The results depend on you.
EDIT:
If you find it comfortable and you get the same results you'd get with the "official" way, why not do it your way?
I knows that the AR.Drone is controllable for Android phone.
However I can't found any open java source code for me to develop!!
All I have found is the code with the type .h which I knows only for
C++ (iPhone user)!
Can any body give me some idea to develop AR.Drone with java code on eclipse?
thx
:)
there is javadrone ( http://code.google.com/p/javadrone/ )
Note: this lib has issues with the AR.Drone 2.0 - fixed ( for at least flying ) here: https://github.com/xperimental/moder.AR.drone/blob/master/library_projects/javadrone-api/src/com/codeminders/ardrone/ARDrone.java
The AR Drone application programing interface API can be found here:
https://projects.ardrone.org/
The API is in c++, if you intend to develop for iphone you will have to write an application from the ground up because the application that exists on the iphon currently is commercial. (Closed source).
As is the android one because they are developed by parrot.
I developed for the ar drone using the computer which was much easier, depending on what you are trying to do i would develop on the computer. If you need more help i would suggest asking here:
http://www.ardrone-flyers.com/
Good luck
We used yaDrone for an autonomous drone project - the library was very reliable.
Furthermore there is an eclipse tutorial for yaDrone.
If you need to build an IOS app you can use openFramework and ofxARDRone from Memo Akten to control and get the video. This framework is written in C++. You can use this framework in XCode and build for IOS, too.
If something is written in VB is it compatible with android?
If so, can you give me some documentation?
No, you can not use programs written in visual basic on android. Android uses java. The closest you'll get is Mono For Android which currently doesn't support VB.NET.
EDIT: (7/12/2016): This is now supported via Xamarin
I assume you are talking about VB.NET, then Mono does not yet support it.
Currently Mono for Android does not support Visual Basic.
We are looking at adding support for Visual Basic on upcoming versions
of Mono for Android.
Technically, what needs to happen is the following: we need to provide
the Visual Basic helper library (part of Microsoft.VisualBasic.dll)
and compile it to work with the Mono for Android mscorlib.dll instead
of the standard Mono 2.0 mscorlib.dll
With the above it will be possible to use Microsoft's Visual Studio to
compile VB code that will run on Mono for Android. But we want to
support Mono's own Visual Basic compiler, but that will also require
the compiler to run using the Mono for Android mscorlib.dll. This is
not difficult, but requires time to get done and integrate into our
release process.
At this point there is no ETA on when the above will happen.
2: http://mono-android.net/FAQ
You could try however Basic4android if that suits your needs.
The closest you're probably going to get is VB.NET via MonoDroid, which according to their FAQ currently does not support Visual Basic. (But they do have it on their radar at least.)
VB is a Microsoft product. While there are some 'nix' implementations of .Net product like Mono, Android is unlikely to support .Net mainly due to liscencing.
I am interested in how Mono for Android (by Novell) works.
My biggest question is around the actual runtime's that are used. Is MfA providing a Mono runtime that wraps and calls down to the Dalvik runtime or is the Dalvik completely bypassed in this operation? Is it something else completely?
I am curious because I hear that the Mono runtime has better performance on mobile devices (not that I believe anything I read on the internet...), and really I am just trying to understand the whole thing.
Any other general knowledge on the topic of comparing and contrasting Mono/Dalvik runtimes would be appreciated.
Thanks!
It's both! Some things are run directly in Mono on the kernel and some things get passed into the Dalvik system.
http://mono-android.net/Documentation/Architecture
Link to site provided by #trutheality is already dead.
Newest version of Mono for Android would be found here: https://developer.xamarin.com/releases/android/mono_for_android_4/mono_for_android_4.4/
It's seems to be a bit out-of-dated version as it has support for earlier Jelly Bean Android version. Nowadays, MonoDroid is called Xamarin.Android and now it's in 6.0.1 version.
but there are no official information how compatible is it with MonoDevelop IDE or how it works on Linux.
I sent today a message about it to Xamarin. Hope they would explain me clearly how it nowadays looks like.
I know C# rather well and just love Visual Studio as IDE. :) Yet now I want to start developing for android...
I found out about MonoDroid and wanted to ask if it has any downsides to it that would make Java more preferable, or should I uninstall Eclipse and dive straight into MonoDroid?
If I understand right, MonoDroid deploys/compiles native android applications and does not need any additional .net-like framework or anything?
Are there any significant limitations to what I can do with MonoDroid? For example, having the app run in the background or using some external .net libraries for image editing, etc. ?
I've been worrying about the same thing - productivity in C# instead of playing with an unfamiliar language, vs developing how the OS developers intended it to be.
Its easy to list pros vs cons -
pros (of monodroid, for C# developers)
familiar dev environment, can develop using Visual Studio
C# instead of Java
Reusable code assets - you can use a lot of code in your iphone project or Windows phone 7 project using monotouch and the WP7 SDK.
cons -
debugging could be difficult, due to lack of api documentation from Google. Will have to depend solely on monodroid documentation.
there could be a lag when it comes to latest cutting edge features - safe to assume that the monodroid team will require some time to wrap around the latest android features every time there is a new OS release
availability of libraries - I am not sure how you can use the open source libraries that would have evolved around the android platform, that could cut down on development time
Much of the documentation available is in Java: so if you run into difficulties with phone behavior when using MonoDroid you won't really find that much help or debugging information so you may want to stick with Eclipse.
There's a lot more than just a set of wrappers running under davlick, truth to be told, there is much more of a horizontal relationship between MonoDroid and Android;
When did using the same language as the OS developers become a big issue? There's lots of C++ programmers wondering how to use BSD or SVR5 and many C programmers who want to know what the heck to do on Windows++...
If you will write in c# anyway you will be have to wrap it into a Java code, so what's the point ? Also you may head with a very difficult issues while trying to understand the APIs who written for Java programming...
Here are some points that you can mull over:
Android applications are predominately written with Java. The Android SDK itself is natively written in Java.
Working in Mono may not provide all the functionality available in the Java SDK.
If you are a C# Developer you wont be able to find, in Java, some of the (cool) features available in C# (like Property Delegates etc).
Code written in .NET can be re-used for other environments - this may save a lot time that would have been spent learning a new language/environment (like Objective C), and coding in it.
.NET extends the Android development stack with it's existing libraries and API's.
I think both are good for certain reason. It will be very hard to say which one is preferable for Android development - in the end that is up to you too decide.
Also note that any release build using monodroid adds an additional 4mb to the apk filesize and increases app startup time with a few seconds.
For simple apps this can mean a 500-800% increase in filesize - whic is pretty bad in my book.