预览

先来张图给大家感受下效果,然后我再慢慢道来过程,保证你避免每一步的坑。

我们要做什么

1、由于Source Insight(以下简称SI)是Windows应用,所以不能直接安装在Linux上,于是我们要借助wine,所以第一步会介绍wine的安装过程和坑;
2、介绍SI在Linux(以Ubuntu 16.04为例)上的安装,并介绍如何导入免费证书(个人建议大家有条件还是付费支持一下SI这个软件,真的是个好东西,比IDEA看源码实在快太多了,我已经买了最新版4.0,还是挺良心的,一次性付费,239美刀);
3、用SI导入AOSP源码并Sync文件建立索引,开头那张截图就是正在Sync,建立完成后就可以快速导航各个方法类引用等等了;
4、默认主题太刺眼,怎么办?还是习惯IDEA的风格,没事,我配置都写好了,只用你一键导入并改改字体大小即可!

第一步:安装wine

直接命令走起:

sudo apt-get install wine

过程中终端会显示一个确定页面,按Tab键选中并确定即可,然后再选“是”。
一般来说由于依赖问题,上述命令都是不能一次性安装成功的,这时候直接:

sudo apt-get install -f

好,我已经看穿了一切,这一步估计大多数用户依然是要出错的,且错误提示:

dpkg: 处理归档
/var/cache/apt/archives/xxx.deb
(–unpack)时出错: 尝试覆盖共享的……

巴拉巴拉这类鬼东西,如果你也是,那么很好,下面一套连招即可解决:

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_back
sudo mkdir /var/lib/dpkg/info
sudo apt-get update
sudo apt-get install -f
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_back
sudo mv /var/lib/dpkg/info_back /var/lib/dpkg/info

安装成功后执行一下wine命令,没提示错误即可。

第二步:安装SI

先去官网下载最新版的exe:https://www.sourceinsight.com/download/
我这里版本号是4.0.0098,建议和我一样,如果下载困难的,可直接在我文末的网盘中下载本文所有资源。
用wine命令安装SI:

wine sourceinsight4098-setup.exe

这个时候会弹出Windows程序的安装过程,全部下一步即可,没有特殊配置,安装路径也最好不要改。
安装完成后你在Ubuntu的应用程序里已经可以搜到SI了,桌面上也会自动创建快捷方式:

然后不要急着打开,把网盘里下载下来的另一个exe文件复制到SI安装目录中:

cd ~/.wine/drive_c/Program\ Files\ \(x86\)/Source\ Insight\ 4.0/
cp ~/你下载并解压后的目录文件夹/sourceinsight4.exe sourceinsight4.exe

copy覆盖后,再打开SI,此时会弹出授权弹窗,选第三个导入证书,这时候选网盘里下载下来的si4.pediy.lic文件即可。

第三步:导入Android源码

成功打开进入SI之后,首次使用会提示import symbol之类的,可以不用管,直接关掉。
然后会继续提示是否创建一个新Project,这个时候就选是了,随便取个名字,然后点 Browser,选择自己的源码所在的目录即可,再 Add All 并勾选 子目录 就可以导入了。
这一步比较简单我就不赘述了,具体图文步骤可参考:https://www.jianshu.com/p/b7b19bcc0425
讲几点注意事项:
1、导入成功后打开了SI主界面,但怎么啥都看不见?不要慌,这时候点一下菜单栏里的 File > Open 就好了。
2、如果发现菜单栏里的按钮都点不动怎么办?这个可能是wine的Bug,不要慌,多点几下SI主界面中间的空白处或者最小化再最大化一下,再去点 File 菜单,看是不是可以获取焦点了?
3、到此我们总算可以查看源码了,但按住Ctrl点击各种方法和变量等等,怎么提示 Symbol Not Found 呢?这是没建立索引的原因,选择菜单栏里的 Project > Synchronize Files 即可, 这个过程非常久,可能要数小时 (如果你导入了全部AOSP源码的话),总之一定要耐心等待,中途可能会导致SI整个界面停止响应,不要动,过一会儿就好了,Sync这一次以后就再也不用了(除非你文件有较大变动)。
如果Sync实在太慢,最开始就不要Add太多文件,选择几个需要的,再Add Tree即可。

第四步:SI主题改为IDEA的Darcula暗黑风格

1、默认字体太小了,我们先改改字体大小:
Alt + Y 快捷键(或者菜单栏 Options > File Type Options),然后改你喜欢的字体和大小即可:

改后确定会弹出一个窗口让你输入 yes ,是否应用于所有文件类型,我一般都是yes。
2、如何设置和IDEA一样的暗黑风格,如果不想自己一点一点手工DIY的同学,可以直接按我的来做:
先把整体主题设为自带的Black:
点击 Options > Visual Theme > Black
然后点击菜单栏 Options > Style Properties ,在弹出的窗口中选择右边的 Load 按钮,选择网盘中下载的 darcula-as.xml 文件即可,Done。

附件

链接: https://pan.baidu.com/s/1wVI61SDojBvxffNHct6NHQ 提取码: ij4s 复制这段内容后打开百度网盘手机App,操作更方便哦!

Ubuntu安装Source Insight导入Android源码并设置仿IDEA主题Darcula相关推荐

  1. 【Android 系统开发】使用 Source InSight 阅读 Android 源码

    1. 安装 Source Insight (1) Source Insight 相关资源 安装相关资源 : -- 下载地址 : http://www.sourceinsight.com/down35. ...

  2. 【Android】Source Insight 基本用法 ( 导入 Android 源码 | 设置字体 | 显示行号 | 搜索功能 | 快捷键设置 )

    文章目录 一.导入 Android 源码 二.配置字体 三.显示行号 四.Tab 键字符个数 五.搜索功能 六.打开文件列表 七.快捷键设置 在 [Android 系统开发]使用 Source InS ...

  3. 手把手教你在Mac OS下载、编译及导入Android源码

    1. 要求 1.1 硬件 160g可用磁盘空间. 笔者编译的是Android 9.0源码,下载下来后将近40g,编译后153g,所以至少需要160g可用磁盘空间. 看网上有别人下载编译7.1.1版本的 ...

  4. 导入android源码有错,R.java文件不能自动生成解决方法 http://caizi12.iteye.com/blog/975125

    最近几天学习android ,学习时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法.可是导入android源码后,基本都有错误,R.java也不会自 ...

  5. [Android源码]Android源码之高仿飞鸽传书WIFI热点搜索与创建(一)

    (本文详情来源:android源码 http://www.eoeandroid.com/thread-296427-1-1.html   转载请注明出处!)  [Android源码分享]飞鸽传书的An ...

  6. Android源码之高仿爱奇艺

    Android源码之高仿爱奇艺  支持平台:Android   运行环境:Eclipse   开发语言:Java 下载地址:http://www.devstore.cn/code/info/306.h ...

  7. AndroidStudio导入Android源码

    简介 导入工具阅读源码这里是依靠了Android源码自带的idegen神器,development/tools/idegen/目录下有个README文件 1.生成导入到AS所需的配置文件 在导入源码之 ...

  8. Android Studio导入Android源码

    1.生成Android.ipr 进入项目根目录,执行 source build/envsetup.sh lunch 项目版本号 make idegen -j16 编译完成后有idegen.jar生成 ...

  9. Android源码解析--SwipeMenuListView仿QQ聊天左滑

    版权声明:本文为博主原创文章,转载请标明出处. https://blog.csdn.net/lyhhj/article/details/50612714 绪论: 好久没写博客了,最近比较懒,不想写博客 ...

最新文章

  1. 独家 | 图片主题建模?为什么不呢?!
  2. python对XML的解析
  3. MyBatis知多少(22)MyBatis删除操作
  4. 问题 | 基于神经网络的高考、中考、考研试题预测
  5. Apollo浏览全貌
  6. 五年级计算机学情分析,信息技术教学计划之学情分析
  7. Network Embedding 与 Graph Embedding
  8. LINUX 错误代码
  9. android 跳转系统通知,android 跳转到应用通知设置界面
  10. Git学习(2)Git 安装
  11. 如何计算两向量的夹角
  12. xcode动态改变窗口大小_[SwiftUI 100天] 在 SwiftUI 中动态过滤 @FetchRequest
  13. 软考论文-高项-进度管理、风险管理
  14. 变频器供电高频电子变压器电源电压检测
  15. CAD教程:CAD自定义菜单和工具栏的操作技巧
  16. 分治算法详解及经典例题
  17. CocoaPods的spec
  18. 【Unity3D】在Unity中实现UI指向箭头
  19. w 命令 和 who 命令
  20. 使用BadBoy录制JMeter脚本

热门文章

  1. Python 爬取蚂蜂窝旅游攻略 (+Scrapy框架+MySQL)
  2. 北邮硕士、前百度工程师:能进大厂,就不用读研究生了!
  3. 使用pgadmin3操作数据库 简介,误删数据表格后用Django重新生成表
  4. 查看Ubuntu下的U盘
  5. Android 圆形头像 带阴影 带边界 完整代码
  6. 2021最新 QQqun乘员数据获取项目(包含js逆向)——QQqunSpider [已完结]
  7. 数据结构(递归及应用)
  8. 电脑HDMI接电视 设置耳机输出声音
  9. win7 计算机游戏不见了怎么办,Win10系统中的小游戏不见了怎么找回
  10. 我与谷歌共成长--谷歌常用的技巧#我和 Google 谷歌共成长