Write applications in C or C++ for Android? [close

2020-01-25 03:24发布

I'm trying to develop/port a game to Android, but it's in C, and Android supports Java, but I'm sure there must be a way to get a C app on there, anyone knows of a way to accomplish this?

标签: c++ c android
20条回答
▲ chillily
2楼-- · 2020-01-25 03:51

I do not know a tutorial but a good development tool: Airplay SDK from Ideaworks Labs. (Recently rebranded "Marmelade") Using C/C++ you can build apps for Windows Mobile, iPhones, Android. The only component I didn't like was the GUI composer - a buggy one, but you always can substitute it with the Notepad.

查看更多
该账号已被封号
3楼-- · 2020-01-25 03:54

Google has already launched Google I/O 2011: Bringing C and C++ Games to Android session which is available at http://www.youtube.com/watch?v=5yorhsSPFG4

which is good to understand the use of NDK for writing application in c and c++ for android.

If you just want to cross compile any console based native game and run them on android then this Article has shown 3 methods for the same.

1: Static compilation using standalone toolchain

2: Cross compilation using Android NDK’s toolchain

3: Cross compilation using AOSP source code

查看更多
三岁会撩人
4楼-- · 2020-01-25 03:57

Native C/c++ Files libstdc++.* from your Ubuntu are x86 (or x86_64) binaries but Android devices and emulators are ARM. Of course, this will not work anyway, even if you'll set correct soname. This is very naive way which leads nowhere. Android has very limited support of C++ meaning there is no exceptions, standard C++ library (including STL) and RTTI. If you need such functionality, use my custom NDK distribution from

http://crystax.net/android/ndk.php - it support full C++ features listed above.

Why is there error: undefined reference to '__cxa_end_cleanup' link error. Android stlport

time. Because there is no link to libstdc + +. A. So wrong.

Because it uses some static library, it is necessary to link the full libstdc + +. A. Can

http://crystax.net/android/ndk.php here to download the package

sources \ cxx-stl \ gnu-libstdc + + \ libs \ armeabi directory.

Android on its own libstdc + + support is limited, it must be linked to a complete libstdc + +. A the job.

Add file in Android.mk LOCAL_LDFLAGS = $ (LOCAL_PATH) / libs / libcurl.a \

 $ (LOCAL_PATH) / libs / liblua.a \
 `$ (LOCAL_PATH) / libs / libstdc + +. A`  

And LOCAL_CPPFLAGS + =-lstdc + +-fexceptions can be compiled

查看更多
Fickle 薄情
5楼-- · 2020-01-25 04:00

For anyone coming to this via Google, note that starting from SDK 1.6 Android now has an official native SDK.

You can download the Android NDK (Native Development Kit) from here: https://developer.android.com/ndk/downloads/index.html

Also there is an blog post about the NDK:
http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html

查看更多
Deceive 欺骗
6楼-- · 2020-01-25 04:00

Normally, you have to:

  1. Install Google Android NDK. It contains libs, headers, makfile examples and gcc toolchain
  2. Build an executable from your C code for ARM, optimize and link it with provided libs if required
  3. Connect to a phone using provided adb interface and test your executable

If you are looking to sell an app:

  1. Build a library from your C code
  2. Create simple Java code which will use this library
  3. Embed this library into application package file
  4. Test your app
  5. Sell it or distribute it for free
查看更多
再贱就再见
7楼-- · 2020-01-25 04:00

This blog post may be a good start: http://benno.id.au/blog/2007/11/13/android-native-apps Unfortunately, lots of the important stuff is "left as an exercise to the reader".

查看更多
登录 后发表回答