在Flutter中,如果我們需要打印日志,如果不進(jìn)行自定義,我們只能使用自帶的print()或者debugPrint()方法進(jìn)行打印,
但是這兩種打印,日志都是默認(rèn)Info層級(jí)的日志,很不友好,所以如果需要日志打印層級(jí)分明,我們就需要自定義一個(gè)
日志打印組件,但是我希望這個(gè)打日志的組件也可以以后在其他項(xiàng)目里直接拿來使用.這就需要我們來開發(fā)一個(gè)日志的插件了,
再比如我們想在Flutter里面獲取Android設(shè)備的信息,或者就是想用Native實(shí)現(xiàn)一個(gè)功能,然后能在Flutter里面使用. 等等…
什么是插件
在flutter中,一個(gè)插件叫做一個(gè)package,使用packages的目的就是為了達(dá)到模塊化,可以創(chuàng)建出可被復(fù)用和共享的代碼,
這和大多數(shù)編程語(yǔ)言中的模塊、包的概念相同。創(chuàng)建出來的package可以在pubspec.yaml中直接依賴。
一個(gè)最小化的package包含了兩部分:
一個(gè)pubspec.yaml文件:一個(gè)元數(shù)據(jù)文件,聲明了聲明了package的名稱、版本、作者等信息。
一個(gè)lib文件夾:包含里package的公開代碼,文件夾至少需要存在.dart這個(gè)文件。
package的種類
package可以分為兩種:純dart代碼的package和帶有特定平臺(tái)代碼的package。
Dart packages:這是一個(gè)只有dart代碼的package,里面包含了flutter的特定功能,所以它依賴于flutter的framework,也決定了它只能用在flutter上。
plugin packages:這是一個(gè)既包含了dart代碼編寫的api,又包含了平臺(tái)(Android/IOS)特定實(shí)現(xiàn)的package,可以被Android和ios調(diào)用。