【Xamarin.Forms 2】App基礎知識與App啓動

系列目錄

1、【Xamarin.Forms 1】App的創建與運行

引言

本篇文章將介紹Xamarin.FormsApp 基礎知識和 App的啓動。

開發環境

  1. Visual Studio 2019 16.6.2
  2. Xamarin.Forms 4.6.0.726
  3. Android 5.0 (API 級別21 - Lollipop)以上

本文主要內容

一、項目總的結構組成

在我們創建了HelloXamarinApp項目時,IDE會默認創建3個項目:HelloXamarinAppHelloXamarinApp.AndroidHelloXamarinApp.iOS

  • HelloXamarinApp 爲功能的項目,主要包括界面的佈局、信息等公共的內容。
  • HelloXamarinApp.Android Android項目的入口,用來生成Apk文件的項目工程。
  • HelloXamarinApp.iOS iOS項目的入口,用來生成iOS App文件的項目工程。

二、Android項目的目錄結構

  • AndroidManifest.xml:Android清單,用於描述功能和需求
  • Resource:Android資源文件夾,用於存放圖片,佈局,樣式,顏色,等等內容;
  • MainActivity.cs:主活動界面,Xamarin.Forms公共庫中寫的頁面等都在這個界面上顯示;

三、AndroidManifest.xml

  • AndroidManifest.xml功能非常強大,用於描述App的功能和需求,如支持的sdk最低版本,目標版本、App安裝後顯示的名稱、App使用的相關手機權限等。
  • 在IDE中,可以通過在Android項目屬性中的Android清單選項中可以圖形化進行維護。
  • 一般情況我們只需瞭解Android清單選項中的內容即可。

選擇Android項目,右鍵->屬性:可以看到清單內容

四、Resource

1、drawablemipmap

  • drawable:推薦用於存放圖片、xml等資源文件;
  • mipmap:推薦存放App圖標文件,
  • mdpi hdpi xhdpi xxhdpi xxxhdpi:分別存放不同分辨率的圖片,Android系統會根據手機分辨率去選擇不同分辨率文件夾下的圖片。
    • mdpi:HVGA(320*480)
    • hdpi:WVGA(480800),FWVGA(480854)
    • xhdpi:720P(1280*720)
    • xxhdpi:1080P(1920*1080)
    • xxxhdpi:4K(3840-2160)

2、layout
用於描述用戶界面佈局,在Android原生開發中,所有的界面都是放在這裏的。

3、values

  • values包含用於存儲簡單值的xml文件,如:
    • style.xml:存放樣式列表,App中的樣式都可以放在此文件中。確保App的全局樣式保持一致
    • colors.xml:存放顏色列表,App各種顏色,包括項目的主題顏色等,都可以在此文件中進行定義
    • strings.xml:存放字符串列表(默認是未創建此文件),需要時可以自行添加

五、MainActivity.cs

項目啓動時一些初始化工作都可以在此文件中。

  1. MainActivity繼承自FormsAppCompatActivity,它是XF在Android平臺下提供的基類,封裝了框架初始化等方法;
  2. 通過base.OnCreate、Forms.Init、LoadApplication三個步驟,將XF框架初始化,並加載App類;
  3. App類主要有以下功能:
  • MainPage:指定App啓動頁面;
  • Properties:跨生命週期的屬性字典;
  • Current:一個代表當前應用的靜態屬性。

六、iOS項目

iOS項目的入口文件在Main.cs中,並在此文件中的Main函數中調用AppDelegate類。
AppDelegate類中的函數FinishedLaunching中會進行一些初始化並啓動App。

七、HelloXamarinApp

如果你使用wpf開發過項目,一定會很熟悉這種項目結構目錄。

看一下App.xaml.cs文件的內容:

【說明:】

  1. MainPage用於指定啓動界面,這裏指定的是MainPage.xaml界面;
  2. Properties屬性字典用於存儲數據,可以在程序中任意位置賦值,任意位置取值;
  3. Current代表當前App,它是一個靜態變量,可以在程序任意位置調用;
  4. 在程序其他位置獲取當前App的方式:Application.Current。

生命週期

App的生命週期在這裏看的很清楚:

OnStart:App啓動時調用;
OnSleep:App轉到後臺時調用;
OnResume:App從後臺恢復時調用。

參考文章:
1、https://www.jianshu.com/p/306a6616fdd5
2、https://www.jianshu.com/p/85e3f0a41e57

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章