当前位置: 代码迷 >> Android >> native 方法的源码有关问题
  详细解决方案

native 方法的源码有关问题

热度:84   发布时间:2016-05-01 21:53:06.0
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

你……
  相关解决方案