/*
* 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 方法,在哪能找到源码。
* 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 方法,在哪能找到源码。
./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可否听说过jniJNI(Java Native Interface)的书写步骤
·编写带有native声明的方法的java类
·使用javac命令编译所编写的java类
·使用javah ?jni java类名生成扩展名为h的头文件
·使用C/C++(或者其他编程想语言)实现本地方法
·将C/C++编写的文件生成动态连接库