外掛程式項目app化說明

來源:互聯網
上載者:User

標籤:ctf   通知   loader   啟動圖   html   load   ast   判斷   extern   

主要工作:

  • 添加app productFlavor,同一套代碼可以編譯出外掛程式和app
  • 用Activity承載LauncherFragment
  • 解決包依賴問題
  • 許可權申請(帳號許可權、cde許可權)
  • 處理包名變更引起的問題
  • 添加app升級功能
  • 相關UI、體驗設計

使用Activity承載入口Fragment

  • 添加入口Activity
  • 把LauncherFragment的view設定為Activity的contentView(比add fragment的方式view層級低&避免Fragment的回收重建問題)
  • 手動調用LauncherFragment的生命週期函數
  • 實現之前宿主Activity的介面,並提供關鍵實現

解決包依賴問題

外掛程式引用了launcher的一些類和功能,外掛程式不用把那些類編譯進dex,只需要編譯通過,所以有很多jar都是provided的方式。

作為獨立app,需要把那些jar編譯到dex裡邊。

遇到了兩個問題:

  1. jar類衝突
    1. 改為compile方式之後,遇到了jar類衝突的問題。之前的jar設定不合理,多個jar會含有相同的一些類,如果都compile進去,就衝突了。
    2. 解決辦法:解壓jar,把多餘的類刪掉,重新打包jar(Java Jar包壓縮、解壓使用指南 https://www.cnblogs.com/javastack/p/8761248.html)。
  2. 方法數超過64K(已經有混淆和去資源冗餘了)
    1. 之前很多jar並沒有編譯到dex裡邊,改為compile方式之後,方法數就超標了
    2. 處理方法:
      1. 清理代碼(刪除老舊不用的功能代碼和相關jar)
      2. 減去對fresco的依賴(外掛程式化的情況下,freso是不編譯進dex的。app話fresco會引入大量的代碼和so,我們沒有大部分功能使用的ImageLoader,可以去掉fresco。fresco還會引入so,作為系統app,必須把so放到system/lib,現在已經有系統應用把so放到system/lib了,如果我們也用fresco,那麼必須考慮so的版本問題,代價高,容易出錯)。

許可權申請(帳號許可權、cde許可權)

之前宿主有申請帳號的許可權,作為app運行之後,必須自己申請帳號等許可權,申請加入白名單等

處理包名變更引起的問題

宿主統一修改了外掛程式的包名,在外掛程式裡邊,所有的標準api擷取的包名都是宿主的。改為app之後,這些ap擷取的包名就是外掛程式自己的包名了。

包名變動涉及:定向廣播、廣告sdk對包名的判斷、其他子功能對包名的判斷

app升級功能

外掛程式的升級是宿主統一管理的,app話之後,需要自己考慮升級功能。升級方式有兩種:

  1. 使用市集的靜默升級功能
  2. 自己添加升級邏輯&UI。使用通過升級sdk,能夠快速完成升級邏輯。

相關UI、體驗設計

  1. Logo
  2. 啟動圖
  3. 大背景圖&loading背景圖
  4. 多案頭外掛程式情況下,左鍵、上鍵、右鍵都有對應的功能,例如切案頭、呼出通知欄。app的情況下,就能重新定義這些按鍵了。

外掛程式項目app化說明

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.