in my resently started internship (i'm studying computer science) i have to port a somehow big existing Project to Android. It is a Visual C/C++ Project which in the end should run on Android using of cource the ndk. But i dont know a thing about porting Software, since this is not coverd in my studies...
I had a few Days to get to know the Project i will work with a little. A few words about the complexity: It is an Visual Studio Solution which consists of 28 Project of which the most are kind of confusing big...
And know i should develop a Concept for Porting it to Android, and this is why i'm writing this. I do absolutly not know where to start, and i do also not know how to get to an Concept for proting it. I tried searching online for some stuff or for some books covering this, but i found nothing.
Of cource i know, that basically i have to remove everythin that is Visual/Windows specific and replace it with appropriate Android/Linux Functions or implement something new if there is nothing corresponding on Android.
But since this Project is somehow huge, i cant just try to compile it with the correct Compiler and work through the error messages, this will lead to nowhere, i guess...
So know my actual question:
Has anybody exeriences about this or something familiar and can give some Tips how to start with it? As said, i first need a Concept. Something more generell about how to start and deal with porting a Software Project of this size is also very welcome, since i dont know nothing about it...
I think that you're approaching the whole matter in the wrong way. There are several tools that will allow you to compile C# and visual C++ and other visual languages from their respected IDEs to the android platform. For example there is mono for android . Mono is a plugin for visual studio which helps you create android projects using visual studio and .net technologies. I think you should focus your research on tools like this because changing all of the code manually is nearly impossible and too time consuming. Here is a page that will help you get started with mono for android. Good luck.
See this answer Android NDK with Visual Studio.
Personally I don't use this, but It seems to be a nice solution to your problem.
Like you, in the past, we had to port a big Visual C++ library project to Android, we proceeded in this way:
- Try to compile the main library interface (by creating the relative Android.mk)
- By using linking errors, you should guess other projects to be compiled and create the mks for them
- Cycle until you have no more linking errors.
You didn't tell about the source code size of the project (how many thousands of lines of source code).
If the code size is big enough (e.g. at least 100 KLOC), you could consider customizing the GCC compiler (assuming a recent 4.6 or 4.7 version), perhaps using MELT (a high level domain specific language to extend GCC), or painfully coding in C a GCC plugin. This GCC customizing approach is worthwhile only for large code bases (you'll need several days to master GCC internals).
On the other hand, many well designed applications may have packaged their operating system functions inside a well defined interface and library. You might consider porting your application to Qt or some other cross-platform library.
We need more details about your project to help you more.