android结合flutter

flutter模块

# 项目同级目录
flutter create -t module my_flutter
# 编译模块
cd my_flutter/.android/
./gradlew flutter:assembleDebug
# 会生成 my_flutter\.android\Flutter\build\outputs\aar\flutter-debug.aar

修改安卓项目文件

# app/build.gradle文件

android {
    compileSdkVersion 28
    defaultConfig {
        ...
    }
    buildTypes {
        ...
    }

    // flutter相关声明
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
dependencies {
  // 接入flutter
  implementation project(':flutter')
}

# settings.gradle文件
include ':app', ':androidFrame'
// flutter新加
setBinding(new Binding([gradle: this]))
evaluate(new File(
    settingsDir.parentFile, '/my_flutter/.android/include_flutter.groovy'
))

在android中接入flutter页面

# 推荐用一个Fragment包裹flutter页面
import android.support.v4.app.FragmentTransaction;
import io.flutter.facade.Flutter;
import io.flutter.facade.FlutterFragment;

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); // 需要继承BaseActivity
FlutterFragment route1Fragment = Flutter.createFragment("route1"); // 路由名
fragmentTransaction.replace(R.id.flutter_fragment_content, route1Fragment).commit(); // 调用flutter_fragment_content打开

# 不要忘记在AndroidManifest.xml添加FlutterViewActivity
# 调用页面
startActivity(new Intent(getBaseContext(), FlutterViewActivity.class));

调用页面

# 调用打开页面(需要继承基类android.support.v7.app.AppCompatActivity)
startActivity(new Intent(getBaseContext(), UserOperatorListActivity.class));
# 调用UserOperatorListActivity页面,初始化数据和layout,经过以下步骤之后,然后渲染数据到页面页面上即可
##  获取数据UserOperatorListFragment.newInstance(),返回一个fragment
##  用实体类FensOperatorListBean去接收数据,使用FensOperatorQueryListAdapter去绑定数据

原生打包基本命令

命令行运行

.\gradlew assembleRelease
.\gradlew installDebug

模拟器

adb kill-server
adb start-server
adb connect 127.0.0.1:7555
adb devices

json字符串转java实体类

https://www.sojson.com/json2entity.html

命令

查看所有任务 包括缓存任务等
gradlew tasks --all 查看所有任务

清除build文件夹
./gradlew clean

编译并安装debug包
./gradlew installDebug

调试模式构建并打印堆栈日志
./gradlew build --info --debug --stacktrace

强制更新最新依赖,清除构建并构建
./gradlew clean build --refresh-dependencies

编译并打Release的包
./gradlew assembleRelease

Release模式打包并安装
./gradlew installRelease

卸载Release模式包
./gradlew uninstallRelease

结合productFlavorsName
./gradlew install[productFlavorsName] app:assembleDebug

Release模式 test 渠道打包
./gradlew assembleTestRelease

依赖查看
./gradlew dependencies

参数
--offline 离线
--daemon 守护进程
--parallel --parallel-threads=N 并行编译
--configure-on-demand 按需编译