读书人

native 方法的源码有关问题

发布时间: 2012-03-26 15:46:56 作者: rapoo

native 方法的源码问题。

Java code
/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package android.graphics;public class Camera {    public Camera() {        nativeConstructor();    }    public native void save();    public native void restore();    public native void translate(float x, float y, float z);    public native void rotateX(float deg);    public native void rotateY(float deg);    public native void rotateZ(float deg);    public void getMatrix(Matrix matrix) {        nativeGetMatrix(matrix.native_instance);    }    public void applyToCanvas(Canvas canvas) {        nativeApplyToCanvas(canvas.mNativeCanvas);    }    public native float dotWithNormal(float dx, float dy, float dz);        protected void finalize() throws Throwable {        nativeDestructor();    }    private native void nativeConstructor();    private native void nativeDestructor();    private native void nativeGetMatrix(int native_matrix);    private native void nativeApplyToCanvas(int native_canvas);        int native_instance;}



以上是android 自带的 Camera.java
请问其中的 native 方法,在哪能找到源码。

[解决办法]
Camera.java不止一个:
./packages/apps/Camera/src/com/android/camera/Camera.java
./frameworks/base/graphics/java/android/graphics/Camera.java
./frameworks/base/core/java/android/hardware/Camera.java

你举出的是第二个。

不知LZ可否听说过jni

JNI(Java Native Interface)的书写步骤
·编写带有native声明的方法的java类
·使用javac命令编译所编写的java类
·使用javah ?jni java类名生成扩展名为h的头文件
·使用C/C++(或者其他编程想语言)实现本地方法
·将C/C++编写的文件生成动态连接库


[解决办法]
frameworks/base/core/jni/android/graphics/Camera.cpp
[解决办法]
是阿,都在jni目录!
[解决办法]
探讨
Camera.java不止一个:
./packages/apps/Camera/src/com/android/camera/Camera.java
./frameworks/base/graphics/java/android/graphics/Camera.java
./frameworks/base/core/java/android/hardware/Camera.java

你……

读书人网 >Android

热点推荐