1. 程式人生 > >MT8735平臺Android5.1系統定製Launcher3系統桌面

MT8735平臺Android5.1系統定製Launcher3系統桌面

我的工作怡康智慧服務終端,繼續進行中,在帖子宇朔醫療專案進展,展示了為該專案定製的桌面效果圖。現在, 在2018年到來之前將這個小目標實現了:
 
為定製這個 桌面,做了如下改動:
1. 背景圖片顯示“怡康智慧服務終端字樣”,背景圖片不被拉伸(過程)
在 packages/apps/Launcher3/src/com/android/launcher3/Launcher.java 下新增:

  1. private void setDefaultWallPaper() {
  2. WallpaperManager mwallpaerManager;
  3. mwallpaerManager = WallpaperManager.getInstance(this);
  4. DisplayMetrics dm = new DisplayMetrics();
  5. getWindowManager().getDefaultDisplay().getMetrics(dm);
  6. int desiredMinimumWidth = dm.widthPixels;
  7. int desiredMinimumHeight = dm.heightPixels;
  8. //使桌布不被裁剪放大模糊
  9. mwallpaerManager.suggestDesiredDimensions(desiredMinimumWidth,
  10. desiredMinimumHeight);
  11. Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
  12. R.drawable.default_wallpaper);
  13. try {
  14. mwallpaerManager.setBitmap(bitmap);
  15. } catch (IOException e) {
  16. Log.e(TAG, "set default wallpaper error");
  17. e.printStackTrace();
  18. }
  19. }

2. 在桌面預設顯示天氣小部件、健康管理、資訊、設定、一鍵撥號:
packages/apps/Launcher3/res/xml/default_workspace_5x5.xml 

  1. <!-- 系統桌面新增應用 -->    
  2. <favorite
  3.         launcher:packageName="com.rz.yk.health"  // 完整包名
  4.         launcher:className="com.rz.yk.health.ui.main.StartUpActivity" //完整包名.類名(處理main intent的類)
  5.         launcher:screen="0" // 應用圖示所在的螢幕(從0開始)
  6.         launcher:x="0"        // 應用圖示所在的列
  7.         launcher:y="4" />  // 應用圖示所在的行
  8. ...................
  9. <!-- 系統桌面新增天氣小部件 -->
  10.     <appwidget
  11.         launcher:packageName="com.moji.mjweather"  // 外掛完整包名
  12.         launcher:className="com.moji.mjweather.CMojiWidget4x2"  //外掛完整包名.類名(處理main intent的類)
  13.         launcher:screen="0" // 外掛圖示所在的螢幕(從0開始)
  14.         launcher:x="0"   // 外掛圖示所在的列
  15.         launcher:y="0"  // 外掛圖示所在的行
  16.         launcher:spanX="3"   // 外掛在螢幕上X方向所佔的格子數
  17.         launcher:spanY="2" /> // 外掛在螢幕上Y方向所佔的格子數
為了能夠預置<appwidget/>,需要在Launcher3/Anroid.mk中新增 LOCAL_PRIVILEGEND_MODULE := true,這樣編譯生成的Launcher3.apk 會生成到/system/priv-app/目錄下。

3. 去除HotSeat;桌面無長按選項;去除主選單,只保留桌面。
該專案無需HotSeat,專案需要的軟體比較少,需要儘量保持簡潔的桌面。
(1)去除HotSeat
packages/apps/Launcher3/res/layout-land/launcher.xml

  1. android:id="@+id/hotseat"
  2.              android:layout_width="match_parent"
  3.              android:layout_height="match_parent"
  4. -            android:layout_gravity="end" />
  5. +            android:layout_gravity="end"
  6. +            android:visibility="gone"/> 《hotseat不顯示》
(2)桌面無長按事件
packages/apps/Launcher3/src/com/android/launcher3/Launcher.java 將 public boolean onLongClick(View v) 中的程式碼去掉,return true。
(3)去除主選單,只保留桌面
packages/apps/Launcher3/src/com/android/launcher3/LauncherAppState.java 將 static boolean isDisableAllApps()  中的程式碼去掉,return false。

4. 禁止刪除和移動桌面的所有圖示
(1)應用快捷鍵可以點選進入,但是不可移動和刪除
因為無桌面長按事件,桌面上的不可長按移動和刪除。應用圖示的顯示循序,在設定桌面預設顯示時已經布好。
(2)天氣外掛點選不可進入,不可移動
packages/apps/Launcher3/src/com/android/launcher3/LauncherAppWidgetHostView.java 在 public boolean onInterceptTouchEvent(MotionEvent ev)  return false 改為 return true


5. 去除背景陰影特效
packages/apps/Launcher3/res/layout-land/launcher.xml 去除 android:background="@drawable/workspace_bg"

  1.      android:id="@+id/launcher"
  2.      android:layout_width="match_parent"
  3. -    android:layout_height="match_parent"
  4. -    android:background="@drawable/workspace_bg">
  5. +    android:layout_height="match_parent" >
packages/apps/Launcher3/src/com/android/launcher3/Launcher.java 去除 setWorkspaceBackground 中的 程式碼,不載入背景特效
  1.      private void setWorkspaceBackground(boolean workspace) {
  2. -        mLauncherView.setBackground(workspace ?
  3. -                mWorkspaceBackgroundDrawable : null);
  4. +       /* mLauncherView.setBackground(workspace ?
  5. +                mWorkspaceBackgroundDrawable : null);*/
  6.      }

帶背景特效的效果圖:

 
去除背景特效之後:
 

相關推薦

MT8735平臺Android5.1系統定製Launcher3系統桌面

我的工作怡康智慧服務終端,繼續進行中,在帖子宇朔醫療專案進展,展示了為該專案定製的桌面效果圖。現在, 在2018年到來之前將這個小目標實現了: 為定製這個 桌面,做了如下改動:1. 背景圖片顯示“怡康智

基於android5.1無顯示觸控系統系統映象裁剪

   思路:          1:   編譯後檢視out\target\product\product\system資料夾的內容,從這個資料夾入手,裁剪不必要的服務,庫檔案,apk,等等.   &nbs

高通平臺開發環境搭建、編譯、燒錄(android5.1以上系統

1. 安裝Ubuntu(12.04LTS以上穩定版本)     安裝過程中必須以根使用者登入或使用sudo獲取root許可權。     1.1按照http://releases.ubuntu.com中的說明,建立安裝光碟,將其安裝到計算機上。     1.2. 安裝完成後,通過下列選項之一來更新軟體:    

天啟android5.1系統無法在非1650批次號的rk3288w芯片上啟動

smis *** ram android4 init 4.0 ready ucc 序表 天啟android5.1系統無法在非1650批次號的rk3288w芯片上啟動掛掉log,說明在rtc初始化後掛掉 [ 1.420240] ======== PULL WL_REG

Android5.1系統啟動過程中啟動有線網絡卡併為其分配靜態IP地址

Android5.1系統啟動過程中啟動有線網絡卡併為其分配靜態IP地址 遇到這個問題的時候剛開始自己以為在init.rc中新增兩行命令就能解決問題,可是後來發現並非如此簡單,所以用下面的文字記錄一下自己解決這個問題的方法。 首先想到的方法是在init.rc中用ifup eth0命令將埠啟動起

數字貨幣交易平臺虛擬幣錢包系統定製開發

數字貨幣交易平臺虛擬幣錢包系統定製開發156-3841-3841 對於當前的區塊鏈人才市場,井通科技武源文說:“現在我們對區塊鏈人才的需求還是挺大的,特別是對合適人才的需求,且以研發人員為主。在區塊鏈行業,要招聘到比較成熟、有經驗的研發人員,還是比較困難的。因為這種人員在傳統行業都是獨擋一面的,你要把他挖過來

解決Android5.1系統下音訊Xrun(underrun或overrun)問題

基於RK3288解決Android5.1系統下音訊Xrun(underrun或overrun)問題 2018年11月23日 16:35:06 21cnhui 閱讀數:38 標籤: Android  audiopcm_configxruntinya

C#.NET 大型企業資訊化系統整合快速開發平臺 4.1 版本

往往我們看到一個好用的工具、就能知道製作這個工具有多少不容易,使用好這個工具也有多少不容易? 通用快速開發框架同樣也是經過多年的完善改進才到了今天的穩定成熟度,知名程度,為什麼能成為全國有名的軟體元件自然也有他的道理。 有上百號人的開發團隊天天使用這個元件、每天有全國各地的幾十萬使用者,全公司十多

C#.NET 大型通用資訊化系統整合快速開發平臺 4.1 版本

  公司的簡訊平臺,資料量越來越大了,需要對資料進行一些優化,下面是拆分後的資料庫量參考。 新開發的軟體模組,必須支援分表,拆表的功能一個數據表裡,不適合儲存1000萬以上的記錄新開發的業務模組,能分表的全分表,否則,將來我們無法用其他小型資料庫,例如mysql 現在系統的簡訊已經進行了拆表

[IMX6Q][Android5.1]移植筆記 --- 無法掛載system檔案系統

platform: imx6q os: Android5.1 branch: l5.1.1_2.1.0-ga 編譯好system image之後開機提示如下log,注意紅色部分: Freeing unused kernel memory: 432K (c0be3

Android5.1 Framework分析----如何在SystemServer中新增系統服務

本文以mtk android5.1為研究物件。 Android的系統服務都是託管給ServiceManager管理的,我們可以自定義一個自己的服務,並將其新增到ServiceManager中,本文以新增一個Tts語音服務為例,供應用層呼叫。 1、首先,在framework

Android5.1系統Android.mk講解(以內建第三方apk的Android.mk為例)

1. Android.mk 是什麼?      Android.mk 檔案用來告知 NDK Build 系統關於Source的資訊。Android.mk是GNU Makefile 的一部分,並且將Bui

Android原始碼修改(自動獲取usb許可權)基於Android5.1定製版系統

自動獲取usb許可權 這篇文章參考了這個得到的解決方案 http://blog.csdn.net/hubbybob1/article/details/50263925 這個博主已經寫得很清楚啦,但是還有一些同學通過私信來問我問題,所以我就把我當時(去年的時候),筆記放上來

Android5.1 內建第三方APK及Android.mk檔案編寫(以在amlogic5.1公版系統內建百度輸入法為例)

Android.mk檔案用來向編譯系統描述如何編譯你的原始碼。在編譯整個工程的情況下,系統所找到的所有的Android.mk將會先存入subdir_makefiles變數中,隨後一次性一次性include進整個編譯檔案中。 示例 Android.mk內容:

定製Android系統】Android 7.1 預設的 USB 配置模式,預設的 usb debug 配置

需求:在 user 版中,插入 usb 連線電腦時,預設只有 mtp (傳檔案)功能,關閉 adb 功能。在 eng 版中,插入 usb 連線電腦時,預設開啟 adb 功能,且兼具 mtp (傳檔案)功能。 提示: Android 4.4 之後貌似修改了整

Android5.1系統應用移植Android7.1報錯

Android5.1 apk移植到Android7.1呼叫so庫失敗解決 錯誤日誌: 03-20 18:51:11.075 19704 19704 E linker : library “/system/lib/libserial_portlib.so”

Android5.1 系統之省電模式探索一啟動流程

文章主要參考網址:http://www.th7.cn/Program/Android/201509/577840.shtml android5.1 省電模式開啟位置: 設定——電池——節電助手(充電狀態下預設無法開啟,即強制關閉) 省電模式開啟後系統狀態: 不同於其他第

如何修改Android5.1系統USB連線方式預設MTP

本文是基於Android5.1的程式碼 device\mediatek\common\device.mk 關鍵字:persist.sys.usb.config # default usb func

Django打造在線教育平臺_day_3: 搭建後臺管理系統Xadmin

gis site mode verify 下載源碼 clas type rec pip xadmin是比Django自帶的admin更加強大的系統 1、安裝xadmin的兩種方式:   方式一:pip install xadmin   方式二:github下載最新的源碼(推

Django打造在線教育平臺_day_3: 搭建後臺管理系統Xadmin之其他app的數據表註冊

user cli mode lis mob use lds desc gist courses/adminx.py import xadmin from .models import Course, Lesson, Video, CourseResource class