FBReader源代码分析系列一配置

来源:互联网 发布:淘宝助理5.3官方下载 编辑:程序博客网 时间:2024/04/28 13:18
一、FBReader项目简介
       FBReader是一个开源电子书阅读器,如今已经支持很多设备。不仅有PC版,支持的操作系统有GNU/Linux,Microsoft Windows,也支持移动终端设备,比如Nokia Internet Tablets。最重要的是早在2008年4月13日,就已经有Google Android版本,即大家熟知的FBReaderJ。且,它开源!
     跟多相关的内容,可以访问如下链接:
     http://www.fbreader.org/
     http://en.wikipedia.org/wiki/FBReader
   (附:国内市面上流行的阅读器,很多都借鉴了FBReader框架的思想,它开源的精神影响了很多国内的开发人员。
    欢迎访问:www.sixreader.com/bbs/)
        

二、建立开发环境

   (1)、Android开发环境

   至于Android开发环境的安装和配置,大家应该谙熟于心了。 安装Android开发环境网络上的资料太多,我就没有必要重新又写一遍了。俗话说:”不要再发明跟别人一模一样的轮子。”
    如下链接对安装叙述很详尽:
    http://hi.baidu.com/lvjava/blog/item/74a8480ee120e0c67acbe10f.html
    http://www.cnblogs.com/skynet/archive/2010/04/12/1709892.html
    感谢网络上分享技术的各位兄弟!

   (2)、NDK开发环境
     
     这部分接触的人或许要少点,一般的Android开发也不涉及到C/C++,所以对入门的童鞋比较陌生。
     介绍一下NDK开发。
     很多程序员误解Android应用开发使用的都是Java,这显然不对。Android底层框架由C/C++构建,即很多库都是C/C++库,因为Java无法控制底层硬件,所以要借助能控制硬件并且高效的语言,那就是C/C++。
     底层库的C/C++与应用层的Java需要沟通,于是就生出JNI。JNI(Java Native Interface)提供了C/C++与Java沟通的渠道,Java能通过JNI的调用,借助C/C++的逻辑来控制底层,同时C/C++也能通过JNI来控制Java层,这种编程方式在FBReader项目中用得越来越多。
     NDK是一个开发工具,能够很方便地让你编译C/C++,生成Linux系统的.so文件。so库是Linux的库文件,跟windows的dll文件的作用类似,所以 Windows需要安装一个虚拟环境来编译C/C++文件成so库。
      安装cygwin的安装:
      在http://cygwin.com/可以下载到最新版本。

      下载完Cygwin的安装程序setup.exe,可以安装了。在安装之前首先确定你要安装的那个驱动器上有3GB的空间。Cygwin在安装的时候可以选择直接从网络安装、下载安装包和本地安装,我是选的下载安装包,将需要的东西下到本地磁盘里,再从本地安装,下一步选择安装的位置,设置网络连接方式并选择下载站点,之后就是选择需要安装的包,有四种安装状态分别是Default、Install、Reinstall、Uninstall,如果你不能确定你所需要的环境,那就把ALL上的状态设为Install,选择全部安装。

     1)安装cygwin

      下载:http://www.cygwin.com/setup.exe。安装时选择ALL以免遗漏gcc等工具。漫长的等待(基于网速情况,也许一夜)之后,cygwin下载完毕。解压到:D:\cygwin。然后手动配置Windows环境变量,增加D:\cygwin;D:\cygwin\bin到Path:

       Path=...;D:\cygwin;D:\cygwin\bin

       验证:调出命令窗口cmd,键入命令:cygwin回车,启动cygwin工具窗口,运行:

       make –v

         

          验证cygwin是否正确:

       GNU Make 3.81(版本可能不一样)

       Copyright (2006) Free Software Fundation Inc....

       下载 android-ndk-r6-windows.zip 安装包,下载地址:

        http://developer.android.com/sdk/ndk/index.html

        解压缩到:D:\android-ndk-r6

       2)整合cygwin和Android NDK

        编辑文件:D:\cygwin\home\Administrator\.bash_profile,在末尾增加:

        # Android NDK

        NDK=/cygdrive/d/android-ndk-r6

        export data-path="$NDK:$PATH"

         

          然后运行如上类似结果就对了。

       保存后重新启动cygwin(开始->运行:cygwin)。

 

        3)使用NDK编译NDK示例:

        启动cygwin;

        进入d:\android-ndk-r6 \samples\hello-jni\jni 目录(或者相应工程的  *.C  或 *.CPP 文件所在目录

        内):

        #cd   /cygdrive/d/android-ndk-r6/samples/hello-jni/jni

        执行ndk-build 编译即可:

        #ndk-build

           

        以后编译某个项目的时候,就直接跑到它的目录下,然后输入:$NDK/ndk-build就可以了。这样的好处是便于调试,以后的系列文章会讲到。


三、导入FBReaderJ项目

          FBReaderJ项目是FBReader组织开发的应用于Android的开源项目,目前稳定版本可以到官网去查,我们研究的这个版本是FreaderJ 2.0 版本,属于 不稳定版。

       选取2.0版本的缘由是此版本大量采用C/C++构建数据模型,估计不久以后将实现用C/C++解析各种格式,提高效率。作者的意图显而易见的。

       FBReaderJ2.0版本可以到群号:233932132下载!

         

       下载完毕后,直接解压!

        在Eclipse中导入项目即可(File-->new-->AndroidProject),运行!

        

         

四、运行和调试

             运行成功后,界面显示如下(以模拟器为主):

                   

                      (图一)主界面                          

                

                          (图二)选取文字界面

         那么如何调试呢?很多人说debug方式,下断点,可是半天,也没见程序跑进来。

         问题何在?          

         答:很可能是你设断点的地方是放在线程里,所以Android的开发,基本不用设置断点,小项目可以,大项目你等半天!流行的调试手段就是打log!

           

          -----END


          (此文档部分内容来源于网络,可以任意转载,转载请保留出处,谢谢咯)


原创粉丝点击