到目前为止,我们已经完整讲解完Android源代码的编译,以及基于Android Studio的开发环境搭建和调试,读者按照前文所述即可开始自己的Android探索之旅。

虽然Android Studio用来开发和调试Java代码非常方便,但对C/C++代码支持并不是很友好,C/C++开发利器Source Insight[1]也没有相应的Linux或Mac版本。为了方便查看Android源代码底层C/C++实现,我们再来讲解安装Sublime Text和CTags插件作为辅助工具。

Sublime Text是一个收费的代码编辑器(但可以无限期试用),由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim,同时支持Windows、Linux、Mac OS X等操作系统。目前最新版本是Sublime Text 3,通过以下网址可下载使用:http://www.sublimetext.com/3

Sublime Text的安装过程相对简单,下载后按照安装引导流程完成即可。通过菜单“Preferences”->“Settings”打开设置界面,左侧窗口显示的是软件的默认配置,右侧窗口显示的是用户设置,如下图所示,可以将左侧的某项配置拷贝到右侧窗口进行修改,修改完毕后保存再重启Sublime Text便可生效。

继续安装CTags插件,在Sublime Text主界面,依次点击菜单“Preferences”->“Package Control”,在打开的窗口中输入“Install Package”,如下图所示。

等Sublime Text扫描完毕可安装的插件,在弹出的插件列表窗口中,输入“CTags”开始安装,如下图所示。

通过菜单“Preferences”->“Package Settings”->“CTags”->“Settings-User”打开用户配置设置,输入以下内容配置CTags的路径:

{"command": "/usr/local/bin/ctags"
}

至此,Sublime Text的CTags插件已经安装配置完成,但仍无法使用,需要继续安装CTags的可执行文件。通过以下网址下载CTags的源代码:

http://jaist.dl.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz

接着解压缩源代码包ctags-5.8.tar.gz

$ tar xzvf ctags-5.8.tar.gz

编译安装

$ cd ctags-5.8
$ ./configure
$ make
$ sudo make install

再次回到Sublime Text,打开菜单“Project”->“Add Folder to Project...”,将Android源代码目录都加入到工程中,如下图所示,如果在Sublime Text中看不到加入的文件夹,可通过菜单“View”->“Side Bar”->“Show Side Bar”可打开左侧边栏的文件夹视图。

在左侧视图中,选择顶级的所有文件夹,右键菜单,点击“CTags: Rebuild Tags”选项创建CTags索引,如下图所示。

CTags索引创建完成后,就可以在Sublime Text中浏览代码,点击菜单“Goto”->“Goto Anything…”,或同时按下快捷键Ctrl+P,打开搜索窗口,输入想查看的文件名称,即可快速定位打开该文件,如下图所示打开init.cpp文件。

点击菜单“Goto”->“Goto Symbol...”,或同时按下快捷键Ctrl+R,可打开窗口在当前文件里搜索方法实现,如下图所示。

至此,Sublime Text和CTags已经都安装完毕,后续在分析Android源代码的时候会有很多地方会使用到这些工具,读者可在实践中进一步摸索。

[1] Source Insight是一个面向项目开发的程序编辑器和代码浏览器,支持对C/C++、C#和Java等程序的分析,具体可参考http://www.sourceinsight.com/。

转载于:https://my.oschina.net/u/660323/blog/811008

鸟人的Android揭秘(8)——搭建Android SDK开发环境(四)相关推荐

  1. 用Eclipse搭建VLC SDK开发环境

    最近研究FFmpeg,看到用FFmpeg写的VLC播放器很牛X,我打算学习一下,网上找了很多的资料发现都是在VS IDE基础上开发的,本人对VS IDE不感冒,因为一直从事java开发,对eclips ...

  2. 鸟人的Android揭秘(5)——搭建Android SDK开发环境(一)

    前面已经完整讲解了Android平台的构成,以及从Git服务器下载源代码并进行编译的内容.接下来讲解如何搭建Android SDK开发环境,包括Android Studio.Sublime.Andro ...

  3. 鸟人的Android揭秘(7)——搭建Android SDK开发环境(三)

    前文已经讲解了Android源代码开发环境的搭建,以及如何使用模拟器加载源代码编译结果,但在开发过程中,无论是为了更地理解代码的运行机制,还是为了找出代码的Bug,都会涉及对代码的调试问题.接下来我们 ...

  4. Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境

    Android群英传神兵利器读书笔记--第一章:程序员小窝--搭建高效的开发环境 目录 1.1 搭建高效的开发环境之操作系统 1.2 搭建开发环境之高效配置 基本环境配置 基本开发工具 1.3 搭建程 ...

  5. Qt | Qt For Android、Qt5.14.2安卓开发环境搭建详细步骤

    Qt | Qt For Android.Qt5.14.2安卓开发环境搭建详细步骤 目录 Qt | Qt For Android.Qt5.14.2安卓开发环境搭建详细步骤 1.简介 2.软件下载 1.J ...

  6. Android NDK 编译PjSip 2.6 之 搭建PjSip apk开发环境 (三)

    Android NDK 编译PjSip 2.6 之 PjSip编译 (二)中已经把so 和java文件编译出来.可以开始搭建apk的开发环境. 我们导入PjSip的example apk程序,编译生成 ...

  7. Xamarin Andro教程搭建Xamarin Androidid开发环境(一)

    Xamarin Andro教程搭建Xamarin Androidid开发环境(一) "工欲善其事,必先利其器".对于程序员来说,编程的环境就是其手中的利器.如果没有一个合适方便的编 ...

  8. 在windows上搭建React Native开发环境

    最近要学习React Native,但是在window上搭建开发环境的时候遇到了些问题,以至于一直没有搭建好开发环境. React Native相关项目及文档: react-native的GitHub ...

  9. 如何在Windows下搭建Qt安卓开发环境?

    一.导读 本文描述如何在Windows下搭建Qt安卓开发环境,由于Qt维护的安卓开发环境和安卓开发环境在很大程度上不兼容,所以在选择Qt版本的时候需要注意:在JDK和Android SDK环境的选择上 ...

最新文章

  1. express细节点注意
  2. win7怎么桌面能不能设置html,win7系统怎么格式化
  3. 个人常用Sublime Text 插件
  4. Netty之Channel的继承关系
  5. java和c++的区别大吗_大空间消防水炮ZDMS0.8/30S坐装和吊装有区别吗?
  6. codesys com库_CoDeSys官方系统库在线下载,替换国内下载服务器教程
  7. Ubuntu 加速安装Opencv 3.4.3
  8. ubuntu16.04caffe训练mnist数据集
  9. JDK1.8 中 ConcurrentHashMap源码分析(二)元素添加是线程安全的
  10. 疫情肆虐下,程序员用代码告诉你为什么千万不要出门!
  11. 小雷:我的核心定位和远大志向(上次更新2013年11月9日)
  12. Django代码部署
  13. 3个开源TTS(五)eSpeak1.06的源码调试分析
  14. 导致Tomcat启动过程缓慢的原因及解决方法
  15. sqlserver备份还原丢失dbo_sqlserver数据库的备份与恢复sql实现
  16. 数据结构利器之私房STL(中)
  17. 进销存设计中的库存设计
  18. Node.js 调用 C++ 方法 / C++ Addons 详解
  19. 烟波流传,繁花三千,倾听似水流年
  20. Python爬取扇贝“【无老师】7天搞定TOEFL单词”

热门文章

  1. 为什么1个字节(Byte)等8位(Bit)?
  2. React 系列 - 前言
  3. PMP备考错题集-模拟三
  4. 全世界的程序员,我只服女程序员
  5. clickhouse 如何快速写入数据
  6. c++面向对象程序设计------课程设计
  7. 超超超简单Typora修改字体颜色
  8. Nature子刊 | 地下水固碳速率与寡营养海洋系统固碳速率相近
  9. openGL之几何变换(绘制球体)---openGL学习笔记(六)
  10. uniapp小程序报错Property or method item is not defined on the instance but referenced during rende