日常开发中我总希望Gradle里面配置一下,我们的java代码就会自动修改逻辑,简称一劳永逸
这么说来很抽象,我举几个例子大家就明白了
- gradle文件中设置不使用flutter,java代码就会自动使用Native页面
- gradle文件中设置使用flutter,java代码就会自动使用Flutter页面
实现思路
gradle修改之后将变动写入android的assets文件夹下面,android代码运行的时候再读取assets里面的文件
把项目地址奉上:
关键代码浏览:
test.gradle
def targetFile = new File("./app/src/main/assets/test.txt")
//这里获取的实际是Java中的BufferedOutputStream
targetFile.withOutputStream { osm ->
String result = isUseFlutter
osm.write(("使用Flutter页面?" + result).getBytes())
}
Settings.gradle
rootProject.name='test'
include ':app'
apply from: 'test.gradle'
MainActivity.java
public class MainActivity extends AppCompatActivity {
private AppCompatTextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.tv);
}
public void readFile(View view) {
InputStream is = null;
String msg = null;
try {
is = this.getResources().getAssets().open("test.txt");
byte[] bytes = new byte[is.available()];
is.read(bytes);
msg = new String(bytes);
mTextView.setText(msg);
} catch (IOException e) {
e.printStackTrace();
mTextView.setText("代码出错啦! "+e.getMessage());
}
}
}
附上两篇博客: