在Android上开发也有两年的时间了,虽然一直都知道Android是构建在Linux Kernel上的手机操作系统,但在此之前一直没有实感。

直到第一次买了Android的手机,并请人帮我Root后这才如梦初醒,原来Android就真TM的是和Linux差不多的东西呀。

所以一直有个想法,就是让Android重新具备Linux应有的功能,当然完全实现是不太可能的,而且谷歌也不会准你这么干吧?

在Github社区上逛了一圈后,才知道有个叫Android Virtual Terminal的东西,它并不是直接调用Android的Linux内核,而是采用模拟的方法间接实现。

目前我测试过的Terminal有两个,一个是叫“Android Terminal Emulator” 另一个叫“Terminal IDE”,比较了一下,虽然前者使用人数最多,但明显后者更合适一些,理由主要有:

Terminal IDE 除了实现Linux terminal应该有的功能外,还附带了Vim和ssh,以及最重要的GIT, 而“Android Terminal Emulator ”仅仅只有vi,再有就是目前得知Terminal IDE可以配置GCC,而ATE还不清楚是否能安装GCC ,所以我毫不犹豫的选择了Terminal IDE

毕竟IDE 的扩展性远远优于ATE

安装Terminal IDE的方法和一般的APK没什么两样,安装好之后并不能直接使用GCC,因此你还需要下载GCC

IDE 和 GCC我已打包放在了一起,可以通过以下获取相关APK 和GCC

http://pan.baidu.com/share/link?shareid=255053&uk=3055041851

接下来是重头戏,配置你的系统

首先,你需要解压整个ZIP文件,并先将Terminal.apk文件安装至手机中,然后把GCC整个文件一起放置到(data/data/com.spartacusrex.spartacuside/files/system)中,因为这个操作可能需要用到root权限,所以如果你手机没有root的话,很可能连安装gcc这一步也做不到。

然后,你可以修改(data/data/com.spartacusrex.spartacuside/files/)目录下的.bashrc文件,当然也可以打开IDE,用vim修改(~/.bashrc),个人觉得用【vim ~/.bashrc 】更为简单一点 。

添加环境变量。

export CPLUS_INCLUDE_PATH=$IDESYSTEM/gcc/arm-linux-androideabi/c++/include:$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=$IDESYSTEM/gcc/arm-linux-androideabi/include:$C_INCLUDE_PATH
export PATH=$IDESYSTEM/gcc/bin:$PATH

接着,将gcc/bin下的文件改一下名,arm-linux-androideabi-g++改为g++arm-linux-androideabi-gcc则改为gcc

完成之后,重启Terimnal IDE,方法是选择Shutdown,然后重新进入即可。

然后,你可以做个小小的测试,让键盘通过USB转Micro的转换口插在手机上,就像我做的那样,然后开始写个Hello World!吧!

最后,貌似要修改部分文件的权限才能运行成功!

哦~! 最好还是Hell Android吧!

祝你玩的愉快!

参考资料:

http://www.cnblogs.com/simpleyyt/archive/2012/11/24/GNU4Android.html

让Android 变身回一台真正的Linux系统吧!!!的更多相关文章

  1. Android内存解析(一)—从Linux系统内存逐步认识Android应用内存

    总述 Android应用程序被限制了内存使用上限,一般为16M或24M(具体看系统设置),当应用的使用内存超过这个上限时,就会被系统认为内存泄漏,被kill掉.所以在android开发时,管理好内存的 ...

  2. 排查和处理一台被攻击的linux系统及其事后分析

    11:40 2018/3/16 发现最近几天服务器流量异常的大,检查了系统命令发现命令最近的修改时间很近,检查dns配置也发现了异常的dns服务器地址. 考虑到事态的严重性,铲掉这个系统重新搭建. 事 ...

  3. 易pc,1G容量以上的u盘,另外还要一台装了windows系统的电脑。

    一.硬件:易pc,1G容量以上的u盘,另外还要一台装了windows系统的电脑. 二.软件: 1.windows xp的安装包.考虑到易PC的硬盘容量,还是用精简版的吧,比如“Deepin XP Li ...

  4. [深入理解Android卷一全文-第八章]深入理解Surface系统

    由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版.而知识的传播不应该由于纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容. ...

  5. Android中的常见通信机制和Linux中的通信机制

    Handler Handler是Android系统中的一种消息传递机制,起作用是应对多线程场景.将A进程的消息传递给B线程,实现异步消息处理.很多情况是将工作线程中需要更新UI的操作消息传递给UI主线 ...

  6. linux系统telnet端口不通能收到SYN但不回SYN+ACK响应问题排查(转载)

    linux系统telnet端口不通能收到SYN但不回SYN+ACK响应问题排查 一:背景:一台机器从公司办公网登录不上且所有tcp端口都telnet不通,但是通过同机房同的其它机器却可以正常访问到出问 ...

  7. 编译android源码官方教程(1)硬件、系统要求

    https://source.android.com/source/requirements.html Requirements IN THIS DOCUMENT Hardware requireme ...

  8. 在Android手机上安装linux系统

    在anroid手机中安装fedora系统.记住不只是教你安装fedora系统. 需要的备注与软件 1.一个已经root的Android手机,记住是root后的,root后的,root后的.(重要的事情 ...

  9. 【源代码】基于Android和蓝牙的单片机温度採集系统

    如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 STC89C52单片机通过HC-06蓝牙模块与Android手机通信实例- 基于And ...

随机推荐

  1. mysql 返回多列的方式

    SELECT * FROM (SELECT 'success' as _result) a,(SELECT @gid as gid) b;

  2. Spring的三种注入方式(Setter、构造函数和自动注入)

    一.Setter注入 这里我是希望在Student.java中调用Course.java中的内容. public class Course { public String name = "数 ...

  3. JDK1.5新特性,基础类库篇,调用外部命令类(ProcessBuilder)用法

    一. 背景 ProcessBuilder类是用来创建操作系统进程的.与Runtime.exec相比,它提供了更加方便的方法以创建子进程. 每个ProcessBuilder实例管理着一个进程属性的集合. ...

  4. 黑客编程教程(十五)HTTP代理

    #include <stdio.h> #include <winsock2.h> #define MAXBUFLEN 20480 #define HTTPADDLEN 50 # ...

  5. 【DSP】CCS中.dat文件的格式

    转自“http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/168292” Here is the infor ...

  6. nyoj 504 课程设计

    课程设计 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 新学期伊始,Gangster 老师又在为如何给学生分配课程设计题目而犯愁,Gangster老师老共有 N 名学生 ...

  7. C#中一道关于多线程的编程题

    题目的意思是这样的:让两个线程A和B将自己的ID轮番写入一个文件中,每个线程重复十次写入后执行一个回调函数,说“I'm OK”,就这样.我是一名QA,不是开发,出于兴趣报考了公司的C#课程考试,多线程 ...

  8. java中常用的类,包,接口

    类 StringIntegerLong File DateThread(java.lang.ThreadThread类的定义:public class Thread extends Object im ...

  9. wp中的双向绑定

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; usin ...

  10. Servlet入门(第一个Servlet的Web程序)

    新建maven项目,注意项目的类型 project名为ServletExample 点击Finish.建立maven项目完毕例如以下 生成后的文件夹没有java源代码文件夹.依照maven的约定,还要 ...