電視盒子必然取代有線電視,但是普遍廣告太多、預(yù)裝的APP太多、存儲(chǔ)又小、看電視直播也有一定限制, 都不盡如人意。很多第三方rom、桌面也沒(méi)比自帶的好多少!“一氣之下(閑的沒(méi)事)”自己搞吧。
下面一步步介紹,用簡(jiǎn)單的方法,開發(fā)極簡(jiǎn)實(shí)用的電視盒子桌面。
必備條件,需要是個(gè)程序員,水平不用太高。但不會(huì)編程也沒(méi)必要往下看了。
- Android Studio
- ADB
- Debloater
- 雙頭USB線
82d5e47db22d44bdb48fd7498ab71345 (23.34 KB, 下載次數(shù): 8)
下載附件
保存到相冊(cè)
2019-10-30 10:31 上傳
雙頭USB線,這個(gè)名稱專業(yè),看圖說(shuō)話吧
自己做也很簡(jiǎn)單,網(wǎng)上買也很便宜,這里不多說(shuō),隨便那搜搜就有。
首先, Android Studio 新建項(xiàng)目
1cc8d0b36f7b4acebf5e88522d5b3380 (32.77 KB, 下載次數(shù): 12)
下載附件
保存到相冊(cè)
2019-10-30 10:31 上傳
b81ca5f3289546d69055574005eaabd5 (36.94 KB, 下載次數(shù): 10)
下載附件
保存到相冊(cè)
2019-10-30 10:31 上傳
項(xiàng)目名稱,隨你愛(ài)好,"Minimum API level" 建議選擇 API22: android 5.1(Lollipop),很多盒子的系統(tǒng)都是基于Android 5.1系統(tǒng)的,如果選高本版兼容性有問(wèn)題。
然后“Finish(完成)”,就完成了。
等待各種下載之后就可以運(yùn)行了。
44683142ff9f46448441b932ec6acddf (32.07 KB, 下載次數(shù): 9)
下載附件
保存到相冊(cè)
2019-10-30 10:31 上傳
運(yùn)行
沒(méi)有改動(dòng)任何編碼,沒(méi)有其他意外的情況下,用模擬器運(yùn)行就是這個(gè)樣子的,Android TV的原生界面。
這樣裝進(jìn)盒子,就可以用,只是什么也看不了,也沒(méi)有任何功能。
通過(guò)最簡(jiǎn)單改動(dòng),來(lái)實(shí)現(xiàn)最基本功能。
- 實(shí)現(xiàn)第一個(gè)功能,看“直播”
打開 Java -> 包名(我的項(xiàng)目 demo.tv.myapplication )-> MovieList 文件。 程序員一看就應(yīng)該明白了! 去網(wǎng)上找直播源吧 :)
2.實(shí)現(xiàn)第二個(gè)功能,也是重要的功能,打開APP。 這個(gè)需要編點(diǎn)程序,到也很簡(jiǎn)單,直接貼段核心代碼
- public ArrayList getAll(Context context) {
- ArrayList all = new ArrayList();
- PackageManager pm = context.getPackageManager();
- /**
- * 返回所有
- */
- ArrayList applicationInfos = (ArrayList) pm.getInstalledApplications(0);
- for (ApplicationInfo info : applicationInfos) {
- if ((info.flags & info.FLAG_SYSTEM) != 0) {
- AppInfo app = new AppInfo();
- ApplicationInfo appInfo;
- try {
- appInfo = context.getPackageManager().getApplicationInfo(info.packageName, PackageManager.GET_META_DATA);
- String activityName = info.name;
- String appName = appInfo.loadLabel(context.getPackageManager()) + "";
- app.setTitle(appName);
- } catch (PackageManager.NameNotFoundException e) {
- e.printStackTrace();
- }
- // 圖標(biāo)
- app.setIcon(info.loadIcon(pm));
- app.setPackagename(info.packageName);
- all.add(app);
- }
- }
- return all;
- }
復(fù)制代碼
在 AndroidManifest.xml文件中添加幾項(xiàng)。
用到的權(quán)限別忘了
源碼此文不詳細(xì)介紹,能看明白的,自然能明白。之后有專門文章詳細(xì)講解真正有用的Android TV桌面開發(fā)。
至此,極簡(jiǎn)桌面核心功能就開發(fā)完成了。
通過(guò)“雙頭USB線”,鏈接盒子與電腦,打開盒子的開發(fā)模式,打開ADB調(diào)試,不同盒子具體方法不太一樣,去搜索一下自己盒子的方法就可以。
正確連接后,電腦會(huì)自動(dòng)安裝驅(qū)動(dòng),如果盒子沒(méi)有被識(shí)別,需要在電腦下載個(gè)手機(jī)助手之類的 軟件,一般就能正確驅(qū)動(dòng),之后再把手機(jī)助手刪除。
91992a18-5339-4bd6-a93e-7349f2608e62 (4.34 KB, 下載次數(shù): 12)
下載附件
保存到相冊(cè)
2019-10-30 10:31 上傳
運(yùn)行環(huán)境 選擇菜單
驅(qū)動(dòng)成功后,Android Studio 運(yùn)行環(huán)境菜單中,會(huì)有你的盒子的選項(xiàng),選中后運(yùn)行程序,APK也就安裝進(jìn)盒子了,不用單獨(dú)打包后安裝。
此時(shí),大多數(shù)盒子會(huì)運(yùn)行此程序,但是并未成為默認(rèn)桌面應(yīng)用,程序退出后,還是會(huì)回到自帶的桌面。那么就用到了另一個(gè)軟件 Debloater。
打開 Debloater(具體方法很簡(jiǎn)單,網(wǎng)上很多) , 鏈接成功后,你會(huì)看到非常多的應(yīng)用, 會(huì)更討厭這些盒子的廠商, 因?yàn)樯虡I(yè)原因, 安裝了非常多沒(méi)用的、重復(fù)的應(yīng)用。Debloater 是用來(lái)“凍結(jié)”(不刪除)應(yīng)用的,你可以把沒(méi)用的應(yīng)用都凍結(jié),不過(guò)有風(fēng)險(xiǎn),一些核心應(yīng)用被凍結(jié),你就要去恢復(fù)出廠設(shè)置,甚至 刷機(jī)了。跟此文有關(guān)的,最重要的是凍結(jié)系統(tǒng)自帶的桌面應(yīng)用,根據(jù)自己盒子,搜一下哪個(gè)是吧,通過(guò)包名其實(shí)也能看出來(lái)。
自帶的桌面被凍結(jié)后,盒子可能會(huì)黑屏一下,之后,你開發(fā)的桌面就顯示出來(lái)了,而且再按返回桌面按鈕或重啟,都會(huì)進(jìn)入你開發(fā)的桌面了。
此文簡(jiǎn)略介紹至此,在非root情況下最簡(jiǎn)單的Android TV桌面開發(fā)完成。已經(jīng)是可用的,不過(guò)我也是很久前這樣搞的,有些細(xì)節(jié)不詳細(xì),此文僅供參考。之后文章我會(huì)詳細(xì)介紹完整的Android TV桌面開發(fā)。
|