文章出處

以下是對于我這個項目的各種場景的描述,基本覆蓋了定制化框架的所有涉及的場景:

假設有ABCDE五個產品。
  

1)基于配置實現:

場景1: 新功能,BCDE有,A沒有
解決方案1:把入口UI屏蔽掉,使用配置文件if else來控制

場景2: 對某個頁面, CDE有相同的UI,AB有些不同,A多一個控件,B少一個控件
在Core中放相同的Layout,處理所有最全的邏輯
在ABC中,做一個同名的Layout,修改為自己的UI,分為加、減、改三種:
場景2_1: A減去控件:因為在Core中Activity會用到減去的R.id,運行時會報找不到這個控件id的錯誤,所以,需要開關來控制,不走這段邏輯。
場景2_2: B加上控件button
一種辦法是,在產品B中,繼承之前的Activity,使用Hook,替換之;
另一種辦法是(C中實現),copy一份相同package的Activity到Core中,覆蓋之前的Activity,這時,這個Activity不需要配置。要注意不要提交copy到core的的代碼

場景2_3(不做新demo了): C修改UI:指的是屬性的修改,沒有額外的工作。
修改UI:在具體產品中加新的layout
修改Activity邏輯:繼承+Hook
結論:盡量做減法

2)基于AOP實現(稍后推出)

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()