码迷,mamicode.com
首页 > 移动开发 > 详细

Android的学习之路一

时间:2015-06-24 00:38:24      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

  在Android的道路上越走越远==,本着一颗童心去学习,没想到最后会成为自己的职业。看到过知乎上写的,并不是兴趣使比尔盖茨以及乔布斯他们成就斐然,而是他们真正的牛逼使得即使买大饼也能成为世界首富。然而如果没有兴趣他们也不会寻求这一条路,现如今自己缺少的不是兴趣和激情,而是对代码对程序的积累,也就是实力的差距,希望能够通过一点一点的进步缩短实力的差距。程序员是需要不断反复思考积累的,仅仅写在这里对自己每天的学习有一个过程的了解。

  学习之前不得不说的便是Android开发环境的搭载,在这里,我们不仅仅需要Java较为灵活方便的界面开发技术,也需要C以及C++的高效简洁。(其实本人更喜欢C,Java的确实大大方便了开发,然而写多了感觉懒得写C了,因为Java什么都几乎封装好了,而C在研究算法和底层中比起Java更为清晰高效)。或许只是对C的钟情,也或许是对效率的考虑,这里我们也希望搭载C和C++的接口,来对Java进行一个相辅相成的作用。利用Java的JNI便可以实现这种方式。

  OK,接下来我们来搭载JDK,SDK,NDK,Eclipse的开发环境。

 

  1. JDK的搭建

  Java Develope Kit的环境搭载是所有Java相关开发的基础,这里我们选择1.7版本的(官网上有1.8版本的可自行下载)。

  系统环境的配置(可参考http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html)

  这个网上有许多的例子可以查看,具体就是在系统属性里面修改环境变量。

  1.1 新建环境变量JAVA_HOME,变量值填写jdk的安装目录(本人是 D:\Java\jdk1.7.0)

  1.2 编辑Path环境变量的值,增加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

  1.3 编辑ClassPath环境变量的值,增加.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

  1.4 环境搭载测试,在CMD下输入Java -version以及Javac -version,查看输出是否正确。若正确则JDK环境搭载成功。

 

  2. SDK的搭建

  首先SDK可以去官网上下载,鉴于天朝的有为,可以选择FQ也可以用一些镜像网站下载,这里推荐一个网站(http://wear.techbrood.com/)里面有非常多的android资源也包括下面介绍的ADT的下载。

  由于在开发中经常需要在命令行中输入一些常用的命令,比如adb的许多命令等等,所以也有必要将这些命令所在的目录写进Path中,以方便程序的调试。

  2.1 新建环境变量SDK_HOME,将SDK的目录填写入

  2.2 编辑Path环境变量的值,增加%SDK_HOME%\platform;%SDK_HOME%\platform-tools;

  2.4 环境搭载测试,在CMD下输入adb,查看输出是否正确。若正确则JDK环境搭载成功。

 

  3. NDK的搭建

  和上面JDK以及SDK差不多==,理解就好~~~

 

  4. Eclipse的环境搭建

  这是所有环境的结局楼,如果上述JDK和SDK以及NDK均OK了,那么进入这一步,将所有的工具路径完善到Eclipse中。

 

  5. JNI的检查是本次的重点介绍

  5.1 Android的项目新建

  首先新建一个Android的项目

  5.2 然后再Android的工程上右键点击Android Tools->Add Native Support并给.so文件取个名字。这时候工程就会多一个jni的文件夹,jni下有Android.mk和XXX.cpp文件。Android.mk是NDK工程的Makefile,XXX.cpp就是NDK的源文件。

  JNI接口的命名规范是:Java + 调用该方法的包名类名 + 方法名,对于实例方法,有两个参数是必要的,一个JNI的环境指针JNIEnv *,另一个是调用该方法的Java实例jobject

#include <jni.h>

#include <string.h>

extern "C"

_jstring*  Java_com_cgf_helloworldndk_MainActivity_jniTest(JNIEnv* env,jobject thiz)

{
    return (env)->NewStringUTF("hello from jni by  ndkTest!");
}

  5.3 加载XXX库

  使用ndk库必须在static代码块里面用System.loadLaibrary加载.so库

public class MainActivity extends Activity {
 
    static {
        System.loadLibrary("my-ndk");
    }
     
    // 声明JNI层的原生方法,使用native关键字
    public native String stringFromJNI();
     
    private TextView textView = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView textView = (TextView) findViewById(R.id.textView);
        textView.setText(jniTest());
    }
}

  5.4 遇到Unable to launch cygpath. Is Cygwin on the path?错误,解决办法如下:

  5.4.1 工程右键,点Properties->C/C++ Build的Building Settings中去掉Use default build command,然后输入${NDKROOT}/ndk-build.cmd

  5.4.2 在C/C++ Build中点击Environment,点Add...添加环境变量NDKROOT,值为NDK的根目录

  尝试一下吧,在View内会看到所写的C代码已经被成功调用了。

  终于完成了,虽然简单,但是一步一步下来,不要犯错也很重要的,去搭建自己的开发环境吧~~~(困死的程序员,据说要在Linux下进行开发,还是有点小慌的,加油以及睡觉)

Android的学习之路一

标签:

原文地址:http://www.cnblogs.com/chenguanfu/p/4596494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!