Skip to content

superorange/flutter_terminal

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flutter_terminal

Flutter重写的标准终端模拟器 其实现方法参照termux在Android的实现 使用Flutter框架重写它的UI部分 并重写了termux的C语言部分

为何要用Flutter重写而不是安卓?

除了个人的一系列想法之外,完全是由于Flutter的跨平台性, termux与Android-Terminal-Emulater的UI实现是通过java编写 终端的创建与子进程的执行完全由jni完成 它们最终只能运行于安卓设备上 而其实这种创建虚拟终端的思想几乎是能用于任何UNIX平台的设备,也就是还有Macos,Linux

为何它的表现并不如原始的安卓模拟器

它截止目前只能识别一些带颜色的输出,原始的安卓模拟器带有一整套终端虚拟机的控制序列, Flutter当前作为很优秀的跨平台框架,我想也能用它来重写一套新的终端序列,从安卓前几代终端模拟器来看, 这可能是一个比较漫长的过程,而我的时间并不太多,但我会尽量尝试重写 Dart没有Java中的文件描述符类型,这使得Dart无法通过一个文件描述符(整形变量),去读写一个设备, 所以我最终完整的重写了termux的C语言部分,由于dart:ffi不需要C语言单独的函数支持,所以最后其实是减少了原始的代码

Terminal resources

Terminal emulators

About

Flutter重写的标准终端模拟器

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 90.9%
  • Swift 3.8%
  • HTML 3.8%
  • Kotlin 1.4%
  • Objective-C 0.1%