這是我參與8月更文挑戰的第8天,活動詳情查看:8月更文挑戰linux
#Platform 在dart:io中,提供與Platform類的API奇偶校驗,但使用實例屬性而不是靜態屬性。這種差別容許在測試中使用這些API,您能夠在其中提供模擬實現。android
看一下構造方法:ios
class Platform {
static int get numberOfProcessors => _numberOfProcessors;
static String get pathSeparator => _pathSeparator;
static String get localeName => _Platform.localeName();
static String get operatingSystem => _operatingSystem;
static String get operatingSystemVersion => _operatingSystemVersion;
static String get localHostname => _localHostname;
static final bool isLinux = (_operatingSystem == "linux");
static final bool isMacOS = (_operatingSystem == "macos");
static final bool isWindows = (_operatingSystem == "windows");
static final bool isAndroid = (_operatingSystem == "android");
static final bool isIOS = (_operatingSystem == "ios");
static final bool isFuchsia = (_operatingSystem == "fuchsia");
static Map<String, String> get environment => _Platform.environment;
static String get executable => _Platform.executable;
static String get resolvedExecutable => _Platform.resolvedExecutable;
static Uri get script => _Platform.script;
static List<String> get executableArguments => _Platform.executableArguments;
static String get packageRoot => _Platform.packageRoot;
static String get packageConfig => _Platform.packageConfig;
static String get version => _version;
}
複製代碼
能夠看到方法仍是很多的 , 接下來咱們主要介紹一下使用方法以及各個屬性表明的含義.macos
##使用方法windows
###1.先引入包:markdown
import 'dart:io';app
Platform.isAndroid Platform.operatingSystem 其餘屬性使用方法同上.post
###3 例如:測試
void _btnPress() {
print(Platform.isAndroid); // true/false
}
複製代碼
若是你的手機是安卓的,會在控制檯打印true,不然打印出false.spa
##API 如下內容基於 Nexus5X API 28測試
table th:second-of-type {width: 100px;}屬性 | 類型 | 本機打印結果 | 描述 |
---|---|---|---|
numberOfProcessors | int | 4 | 機器的各個執行單元的數量。 |
pathSeparator | String | / | 操做系統用於分隔文件路徑中的組件的路徑分隔符。 |
localeName | String | en_US | 獲取當前區域設置的名稱。 |
operatingSystem | String | android | 表示操做系統或平臺的字符串。 |
operatingSystemVersion | String | Linux 4.4.124+ #1 SMP PREEMPT Mon Jun 18 17:10:07 UTC 2018 | 表示操做系統或平臺版本的字符串。 |
localHostname | String | localhost | 系統的本地主機名 |
isLinux | bool | false | 操做系統是否爲[Linux]的版本 |
isMacOS | bool | false | 操做系統是否爲[macOS]的版本 |
isWindows | bool | false | 操做系統是否爲[Windows]的版本 |
isAndroid | bool | true | 操做系統是否爲[Android]的版本 |
isIOS | bool | false | 操做系統是否爲[IOS]的版本 |
isFuchsia | bool | false | 操做系統是否爲[Fuchsia]的版本 |
environment | Map< String, String > | {PATH:/sbin:/system/sbin:/system/bin:/s } ..等一系列字符串很長.. | 此過程的環境爲從字符串鍵到字符串值的映射。映射是不可修改的,其內容在首次使用時從操做系統中檢索。Windows上的環境變量不區分大小寫,所以在Windows上,映射不區分大小寫,並將全部鍵轉換爲大寫。在其餘平臺上,能夠經過大小寫區分鍵。 |
executable | String | /system/bin/app_process32 | 用於在此隔離中運行腳本的可執行文件的路徑。用於標識腳本的文字路徑。此路徑多是相對的,或者只是經過搜索系統路徑從中找到可執行文件的名稱。使用[resolvedExecutable]獲取可執行文件的絕對路徑。 |
resolvedExecutable | String | /system/bin/app_process32 | 操做系統解析後,用於在此隔離中運行腳本的可執行文件的路徑。這是解析全部符號連接的絕對路徑,用於運行腳本的可執行文件。 |
script | Uri | file:///main.dart | 在這個隔離區中運行腳本的絕對URI。若是可執行環境不支持(腳本),uri爲空 |
executableArguments | List< String > | [] | 在這個隔離區中運行腳本傳遞給可執行文件的標誌。這些是在腳本名稱前面的可執行文件的命令行標誌。每次讀取值時都會提供一個新的列表。 |
packageRoot | String | null | --package-root 標誌傳遞給可執行文件,用於在該隔離區中運行腳本。若是沒有--package-root 標誌,則爲null |
packageConfig | String | null | --package 標誌傳遞給可執行文件,用於在該隔離區中運行腳本。若是沒有--package 標誌,則爲null |
version | String | 2.0.0-dev.58.0.flutter-f981f09760 (Sat May 26 03:16:14 2018 +0000) on "android_ia32" | 當前DART運行時的版本。 |