推荐当贝市场

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 119630|回复: 16

[分享] 自带桌面不好用?DIY开发极简Android TV桌面详细教程!

 火 [复制链接]
发表于 2019-10-30 10:38 | 显示全部楼层 |阅读模式
电视盒子必然取代有线电视,但是普遍广告太多、预装的APP太多、存储又小、看电视直播也有一定限制, 都不尽如人意。很多第三方rom、桌面也没比自带的好多少!“一气之下(闲的没事)”自己搞吧。

下面一步步介绍,用简单的方法,开发极简实用的电视盒子桌面。

必备条件,需要是个程序员,水平不用太高。但不会编程也没必要往下看了。

  • Android Studio
  • ADB
  • Debloater
  • 双头USB线
82d5e47db22d44bdb48fd7498ab71345


双头USB线,这个名称专业,看图说话吧


自己做也很简单,网上买也很便宜,这里不多说,随便那搜搜就有。

首先, Android Studio 新建项目

1cc8d0b36f7b4acebf5e88522d5b3380


选择"TV", "Android TV Activity", "Next(下一步)"

b81ca5f3289546d69055574005eaabd5


项目名称,随你爱好,"Minimum API level" 建议选择 API22: android 5.1(Lollipop),很多盒子的系统都是基于Android 5.1系统的,如果选高本版兼容性有问题。

然后“Finish(完成)”,就完成了。

等待各种下载之后就可以运行了。

44683142ff9f46448441b932ec6acddf


运行


没有改动任何编码,没有其他意外的情况下,用模拟器运行就是这个样子的,Android TV的原生界面。

这样装进盒子,就可以用,只是什么也看不了,也没有任何功能。

通过最简单改动,来实现最基本功能。

  • 实现第一个功能,看“直播”
打开 Java -> 包名(我的项目 demo.tv.myapplication )-> MovieList 文件。
程序员一看就应该明白了!
去网上找直播源吧 :)

2.实现第二个功能,也是重要的功能,打开APP。
这个需要编点程序,到也很简单,直接贴段核心代码

  1. public ArrayList getAll(Context context) {
  2. ArrayList all = new ArrayList();
  3. PackageManager pm = context.getPackageManager();
  4. /**
  5. * 返回所有
  6. */
  7. ArrayList applicationInfos = (ArrayList) pm.getInstalledApplications(0);
  8. for (ApplicationInfo info : applicationInfos) {
  9. if ((info.flags & info.FLAG_SYSTEM) != 0) {
  10. AppInfo app = new AppInfo();
  11. ApplicationInfo appInfo;
  12. try {
  13. appInfo = context.getPackageManager().getApplicationInfo(info.packageName, PackageManager.GET_META_DATA);
  14. String activityName = info.name;
  15. String appName = appInfo.loadLabel(context.getPackageManager()) + "";
  16. app.setTitle(appName);
  17. } catch (PackageManager.NameNotFoundException e) {
  18. e.printStackTrace();
  19. }
  20. // 图标
  21. app.setIcon(info.loadIcon(pm));
  22. app.setPackagename(info.packageName);
  23. all.add(app);
  24. }
  25. }
  26. return all;
  27. }
复制代码

在 AndroidManifest.xml文件中添加几项。





复制代码

用到的权限别忘了

源码此文不详细介绍,能看明白的,自然能明白。之后有专门文章详细讲解真正有用的Android TV桌面开发。

至此,极简桌面核心功能就开发完成了。

通过“双头USB线”,链接盒子与电脑,打开盒子的开发模式,打开ADB调试,不同盒子具体方法不太一样,去搜索一下自己盒子的方法就可以。

正确连接后,电脑会自动安装驱动,如果盒子没有被识别,需要在电脑下载个手机助手之类的软件,一般就能正确驱动,之后再把手机助手删除。

91992a18-5339-4bd6-a93e-7349f2608e62


运行环境 选择菜单


驱动成功后,Android Studio 运行环境菜单中,会有你的盒子的选项,选中后运行程序,APK也就安装进盒子了,不用单独打包后安装。

此时,大多数盒子会运行此程序,但是并未成为默认桌面应用,程序退出后,还是会回到自带的桌面。那么就用到了另一个软件 Debloater。

打开 Debloater(具体方法很简单,网上很多) , 链接成功后,你会看到非常多的应用, 会更讨厌这些盒子的厂商, 因为商业原因, 安装了非常多没用的、重复的应用。Debloater 是用来“冻结”(不删除)应用的,你可以把没用的应用都冻结,不过有风险,一些核心应用被冻结,你就要去恢复出厂设置,甚至刷机了。跟此文有关的,最重要的是冻结系统自带的桌面应用,根据自己盒子,搜一下哪个是吧,通过包名其实也能看出来。

自带的桌面被冻结后,盒子可能会黑屏一下,之后,你开发的桌面就显示出来了,而且再按返回桌面按钮或重启,都会进入你开发的桌面了。

此文简略介绍至此,在非root情况下最简单的Android TV桌面开发完成。已经是可用的,不过我也是很久前这样搞的,有些细节不详细,此文仅供参考。之后文章我会详细介绍完整的Android TV桌面开发。

以上就是自带桌面不好用?DIY开发极简Android TV桌面详细教程的全部内容,智能电视的用户还可以下载当贝市场(http://znds.tvapk.com/update/dbmarket.apk)安装你喜欢的电视软件使用。更多精彩:https://www.znds.com/bbs-64-1.html



发表于 2019-10-30 10:39 | 显示全部楼层
做成包用u盘装我会感谢你3天
回复 顶一个 2 踩 0

使用道具 举报

发表于 2019-10-30 10:39 | 显示全部楼层
Debloater这个也许是我需要的东西
回复 顶一个 1 踩 0

使用道具 举报

发表于 2019-10-30 10:38 | 显示全部楼层
很喜欢,希望可以开源
回复 顶一个 1 踩 0

使用道具 举报

发表于 2019-10-30 10:39 | 显示全部楼层
思路不错
回复 顶一个 踩

使用道具 举报

发表于 2019-10-30 10:39 | 显示全部楼层
三星电视怎么弄?
回复 顶一个 踩

使用道具 举报

发表于 2019-10-30 10:39 | 显示全部楼层

电视跟盒子其实一样,应该都行
回复 顶一个 踩

使用道具 举报

发表于 2019-10-30 11:09 | 显示全部楼层
老铁666!必须支持一波!
回复 顶一个 踩

使用道具 举报

发表于 2019-11-1 00:01 | 显示全部楼层
先把机器刷成砖,再把砖头刷成机器,我都佩服自己在ZNDS学到的刷机技术!
回复 顶一个 踩

使用道具 举报

发表于 2019-11-1 10:30 | 显示全部楼层
老铁666!必须支持一波!
回复 顶一个 踩

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

Archiver|小黑屋|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

GMT+8, 2026-11-6 03:51 , Processed in 0.040357 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表