android用java_原来android不是只能用java写软件

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

We released the first version of the Native Development Kit,

a development toolchain for building shared libraries in C or C++ that

can be used in conjunction with Android applications written in the Java

programming language, way back in July of 2009. Since that initial

release we’ve steadily improved support for native code; key features

such as OpenGL ES support, debugging capabilities, multiple ABI support,

and access to bitmaps in native code have arrived with each NDK

revision. The result has been pretty awesome: we’ve seen huge growth in

certain categories of performance-critical applications, particularly 3D

games.

These

types of applications are often impractical via Dalvik due to execution

speed requirements or, more commonly, because they are based on engines

already developed in C or C++. Early on we noted a strong relationship

between the awesomeness of the NDK and the awesomeness of the

applications that it made possible; at the limit of this function is

obviously infinite awesomeness (see graph, right).

With the latest version of the NDK we intend to

further increase the awesomeness of your applications, this time by a

pretty big margin. With NDK r5, we’re introducing new APIs that will

allow you to do more from native code. In fact, with

these new tools, applications targeted at Gingerbread or later can be

implemented entirely in C++; you can now build an entire Android

application without writing a single line of Java.

Of course, access to the regular Android API still

requires Dalvik, and the VM is still present in native applications,

operating behind the scenes. Should you need to do more than the NDK

interfaces provide, you can always invoke Dalvik methods via JNI. But if

you prefer to work exclusively in C++, the NDK r5 will let you build a

main loop like this:

void android_main(struct android_app* state) {

// Make sure glue isn't stripped.

app_dummy();

// loop waiting for stuff to do.

while (1) {

// Read all pending events.

int ident;

int events;

struct android_poll_source* source;

// Read events and draw a frame of animation.

if ((ident = ALooper_pollAll(0, NULL, &events,

(void**)&source)) >= 0) {

// Process this event.

if (source != NULL) {

source->process(state, source);

}

}

// draw a frame of animation

bringTheAwesome();

}

}(For a fully working example, see the native-activity sample in NDK/samples/native-activity and the NativeActivity documentation.)In addition to fully native applications, the latest NDK lets you play sound from native code (via the OpenSL ES API,

an open standard managed by Khronos, which also oversees OpenGL ES),

handle common application events (life cycle, touch and key events, as

well as sensors), control windows directly (including direct access to

the window’s pixel buffer), manage EGL contexts, and read assets

directly out of APK files. The latest NDK also comes with a prebuilt

version of STLport, making it easier to bring STL-reliant applications

to Android. Finally, r5 adds backwards-compatible support for RTTI, C++

exceptions, wchar_t, and includes improved debugging tools. Clearly,

this release represents a large positive ∆awesome.

We worked hard to increase the utility of the NDK

for this release because you guys, the developers who are actually out

there making the awesome applications, told us you needed it. This

release is specifically designed to help game developers continue to

rock; with Gingerbread and the NDK r5, it should now be very easy to

bring games written entirely in C and C++ to Android with minimal

modification. We expect the APIs exposed by r5 to also benefit a wide

range of media applications; access to a native sound buffer and the

ability to write directly to window surfaces makes it much easier for

applications implementing their own audio and video codecs to achieve

maximum performance. In short, this release addresses many of the

requests we’ve received over the last year since the first version of

the NDK was announced.

We think this is pretty awesome and hope you do too.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值