zoukankan      html  css  js  c++  java
  • 【JNI】javah使用(初步)

    环境:window 7+ Eclipse

    使用javah为已建立的Android工程创建头文件

    已建立的工程目录大致如下:

    r52kysmz.shq 

    其中MainActivity.java:

    package com.amanda.readsysfilejni;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    	private TextView mText;
    	
    	public native String getSysInfo(String vFilePath,String vKey);
    	public native String getSysInfoAll(String vFilePath);
    	
        static {
        	System.loadLibrary("sys_info"); 
        } 
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            mText = (TextView)this.findViewById(R.id.text);
            mText.setText(getSysInfo("/proc/cupinfo","Processor"));
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
        
    }

    我需要对MainActivity.java中使用的JNI对应的c代码生成头文件(初学JNI,不知道有没有表达清楚??),使用javah工具,在命令行下依次输入下述命令:

    > cd D:\workspace3\ReadSysFileJNI\bin\classes    --------进入工程的bin\classes目录

    > javah -classpath . -d D:/workspace3/ReadSysFileJNI/jni -jni com.amanda.readsysfilejni.MainActivity    --------在jni目录生成了com_amanda_readsysfilejni_MainActivity.h文件

    另,附上javah的参数说明:

    D:\workspace3\FirstJNI\bin>javah -help
    用法:javah [选项] <类>

    其中 [选项] 包括:

            -help                 输出此帮助消息并退出
            -classpath <路径>     用于装入类的路径
            -bootclasspath <路径> 用于装入引导类的路径
            -d <目录>             输出目录
            -o <文件>             输出文件(只能使用 -d 或 -o 中的一个)
            -jni                  生成 JNI样式的头文件(默认)
            -version              输出版本信息
            -verbose              启用详细输出
            -force                始终写入输出文件

    使用全限定名称指定 <类>(例如,java.lang.Object)。

  • 相关阅读:
    显示文件本地文件夹
    Select Dependencies选择依赖项
    搜索小技巧
    783. Minimum Distance Between BST Nodes BST节点之间的最小距离
    5. Longest Palindromic Substring 最长的回文子串
    12. Integer to Roman 整数转罗马数字
    3. Longest Substring Without Repeating Characters 最长的子串不重复字符
    539. Minimum Time Difference 最小时差
    43. Multiply Strings 字符串相乘
    445. Add Two Numbers II 两个数字相加2
  • 原文地址:https://www.cnblogs.com/Amandaliu/p/2982815.html
Copyright © 2011-2022 走看看