首页 > 评测 > Android Things 之八——在树莓派3上探索GUI初步
Android Things 之八——在树莓派3上探索GUI初步
- [导读]
- Android Things是有GUI的。虽然前面介绍Android Things时,我们都直接使用了Android Studio的Logcat窗口来输出相关的信息,但是从现在起,我们开始来探索Android Things的GUI世界。
Android Things是有GUI的。虽然前面介绍 Android Things时,我们都直接使用了Android Studio的Logcat窗口来输出相关的信息,但是从现在起,我们开始来探索 Android Things的GUI世界。
欢迎加入Android Things交流群:452863046
i.MX7D支持连接配套的屏幕来输出,不过RPI3本身提供了HDMI输出接口,可以直接连接外部显示器,至于触摸等输入功能,使用USB键盘和鼠标就搞定。
像平常使用RPI3一样,给它连接好显示器及键盘、鼠标,只不过这次软件平台变成了 Android Things,神奇的RPI!
上电后我们会看到什么呢?
上电启动过程中可以看到 Android Things的Logo,等系统完全启动后,就看到了所谓的桌面了。和Android的桌面不同的是,这个桌面有点寒酸!这个桌面几乎没有交互特性,更多的是提供平台的一些描述性的介绍,包括的信息主要有:软件平台、网络接口、IO/Pinout及显示器相关信息。例如我们知道这是 Android Things的RPI3版本,网络地址为192.168.88.21等信息。
这里显示连接使用的有Ethernet网络接口。
硬件平台提供的可用I/O接口,包括PWMx2,UARTx2,I2Cx1,SPIx2及全部可用的GPIO编号等信息。
显示设备的分辨率及DPI信息,这里直接使用了显示器来输出。
这里显示的是操作系统的信息,使用的API Level为27,也就是普通意义上的Oreo。另外系统使用的日期格式也可以在这里设置。
Android Things支持在线升级,如果开发商升级了系统固件,可以直接在这里进行更新,很是方便!
另外两个功能是重启设备及恢复出厂设置操作,在Android设备中,这两个操作也是非常常见的。
接下来准备写一段代码,模拟桌面程序中的I/O Pinout功能,列举出所有可用的外设,放到一个RecyclerView组件中,最终运行的效果图如下
如同Android程序开发一样, Android Things中使用layout来对屏幕进行布局,初始代码如下
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
传统的RelativeLayout已被ConstraintLayout取代,新的布局可以有效消除嵌套问题,执行效率更高!
将TextView去掉,添加新的RecyclerView来显示接口列表
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
接下来要在java代码添加功能,通过API来获取设备接口,然后添加到RecyclerView中就行了。
public class MainActivity extends Activity {
private RecyclerView mRecyclerView;
class MyHolder extends RecyclerView.ViewHolder {
private TextView mTextView;
public MyHolder(View itemView) {
super(itemView);
mTextView = (TextView) itemView;
}
}
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
人均百万?英伟达中国员工收入曝光! 2024-08-29
-
《黑神话:悟空》玩家硬盘升级攻略:提升游戏体验,畅享3A大作 2024-08-29
-
数睿数据参加《系统与软件工程 低代码开发平台通用技术要求》国家标准编制 2024-08-29
- NRF52810蓝牙数字耳机找人定制
预算:¥30005天前
- 125KW模块式PCS软硬件外包开发
预算:¥1100000015小时前
- 12V汽车启动电源项目BMS设计
预算:¥50000023小时前
- 数据可视化软件 开发
预算:¥5000023小时前
- PLC项目调试修改
预算:¥100001天前
- 起动电机控制器开发
预算:¥1100001天前