android - adb shell android上的ncurses
问题描述
我正在尝试在 Android 上使用 ncurses 创建一个简约的命令行 gui。我为 ARM64 等交叉编译了 ncurses,一切似乎都在运行。然而; 在 adb shell 中启动我的测试“hello world”ncurses 程序时,出现以下错误:
Error opening terminal: xterm-256color.
当我尝试将 TERM 设置为 xterm 或我得到的东西时:
Error opening terminal: xterm.
我需要编译 ncurses 和/或配置 Android 以允许运行这样的 CLI gui 吗?
解决方案
您需要一个终端数据库来运行 curses 应用程序。显然没有安装(尽管可能存在一个终端数据库,其位置与TERMINFO
or的编译默认值不对应TERMINFO_DIRS
)。
使用 ncurses,您可以配置和编译在INSTALL
终端数据库中找不到终端描述时使用的后备条目(在源文件中讨论):
为了在 terminfo 树可访问之前支持 ncurses 程序的操作(即,在单用户模式下或在 OS 安装时),可以编译 ncurses 库以包含一组预取的回退条目。
注意:这必须在安装了 ncurses 的 infocmp 和 terminfo 数据库(以及 ncurses 的 tic 和 infocmp 程序)的机器上完成。这是因为在构建树的 infocmp 副本可用之前,会生成回退源并将其编译到库中。
仅当从 terminfo 树的常规提取和 termcap 回退(如果已配置)已尝试并失败时,setupterm() 才会检查这些条目。因此,当该条目可访问时,回退的存在不会影响对相同类型的磁盘条目的修改。
推荐阅读
- matlab - 如何在 Matlab 中以更好的方式实现 Box 函数?
- python - 在python中合并来自两个不同列表的DF
- multithreading - 如果我为它创建一个专用代理,我可以从多个线程中写入一个 sqlite 数据库吗
- python - Python - 如何将重复的过程置于循环中?
- html - textarea(或可编辑的div?)中每一行的不同背景颜色
- influxdb - 时间绑定参数命令错误 *influxql.StringLiteral 不兼容
- python-3.x - 如何在 Windows 中的 python 中的 selenium webdriver 中停止通过代理/禁用代理连接?我不再想要任何代理了
- android - Android 布局:将一个布局粘贴到屏幕顶部,并在下方居中放置另一个布局
- android - 更改后 RecyclerView 不会保持修改状态
- php - Laravel 关系在急切加载时显示 null