iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 3
0
Mobile Development

iOS Developer Learning Android系列 第 3

iOS Developer Learning Android. Lesson 03 - 專案相關設定 (實現iOS上的Target管理)

AndroidManifest 跟 Gradle

今天來談談一些Android上的專案設定
像以前Xcode都是在藍色的專案檔上設定
⚠️⚠️⚠️而AS的話會有兩個地方:
首先是AndroidManifest,我會認為他跟以前的Xcode專案檔比較像,再來是Gradle,我會覺得他跟podfile比較像,因為套件依賴都寫在這裡
相關設定說明就直接上圖啦~(用iOS的專有名詞去mapping):

  1. AndroidManifest
    1. 所有的Activity都會出現在這個檔案裡(Activity就是ViewController)
    2. 另外說明一下,我也不明白為什麼要分action.MAIN跟category.LAUNCHER兩個屬性,總之這兩個屬性是一起的,少了任何一個就會報錯Error running 'app': Default Activity not found
    3. 就算我另外加一個Activity,一個設為action.MAIN,一個category.LAUNCHER,一樣不行
    4. 如果有多個Activity同時設定這兩個屬性,AS會抓第一個
  2. Gradle(這個就可以註解了)
    1. 如果Gradle有任何修改之後都要Sync一下(右上角)

icon

  1. 你要先準備好圖,個人多年以來都是使用圖標工廠
  2. 本App的icon
  3. ⚠️⚠️⚠️因為前面有提到Andriod有分一般的icon跟圓的icon,所以你兩種都要準備,不然在一些機型可能就會顯示預設icon了
  4. ⚠️⚠️⚠️Android的icon是可以透明的,所以你要做一個三角形的icon也可以XD
  5. icon的路徑是:app>src>main>res,看是要拉進Finder去取代,還是在AS裡面改成Project結構後再取代也可以
  6. ^R之後就可以看到已經變新的icon了(Android不一定安裝後會自動新增到桌面,要看機型)

多Target

  1. 類似的東西在AS裡面叫做module
  2. 先在app資料夾上按右鍵new一個module
  3. module類型就選Android Library(不然他會叫你生Activity)
  4. 接著在"app"這個Gradle裡面做一些配置
    1. 增加一個參數flavorDimensions,值給什麼都沒關係,如圖給個空也可以
    2. 然後設定productFlavors,裡面說明有幾個module,跟相關的設定,applicationId以這邊的設定為準,也可以在這邊設定一些buildConfigField。
      1. 格式如圖:型別, 常數名, 值
      2. 之後在程式裡就可以用BuildConfig.foo取到這常數,去做一些邏輯判斷
      3. 如果值是字串,要在加上跳脫符號,如""我是字串""
  5. 然後在依賴裡面加入module,格式就是:變數+Implementation,如v1Implementation,後面給module name,這樣他才會去抓module裡面的icon或是Display name
  6. ⚠️⚠️⚠️這邊說明一下,以前我們都會把很多配置寫成define,這個部分AS有幫我們做管理,例如Display name會寫在res>values>string.xml檔裡面。
    所以如果我們要做到每個module有不同的Display name,就要先把app這個module裡的設定刪掉,不然還是會吃到舊的Display name。
  7. 最後我們如果要執行不同module的話,先在左下角點Build Variants,然後在app裡面切換v1或v2的Debug(Release的話因為還沒簽名,所以目前還不能選)
  8. 這時^R的話就會看到不同的Display name了
  9. 另外說明一下怎麼移除module,是不能用一般的方法刪除的,必須到project Structure(找不到的話可以按兩下shift搜尋)裡才能remove

今天的範例程式

可以去 https://github.com/mark33699/IDLA 看一下順便給顆⭐️


如果你喜歡我的影片別忘了按讚分享加訂閱,開啟紅色的小鈴鐺,我們明天見~


上一篇
iOS Developer Learning Android. Lesson 02 - Hello World (把App裝到你的安卓手機上)
下一篇
iOS Developer Learning Android. Lesson 04 - Activity (了解祂的生老病死)
系列文
iOS Developer Learning Android30

尚未有邦友留言

立即登入留言