WebView 是Android 其中一個元件 它可以用來在Application中顯示Web, 使得 Android 可能受網頁弱點影響 像是常見 XSS 或是 LFI, 所以盡量用系統提供 Browser 來傳遞資訊 而不是把web東西嵌入在WebView中
在比較新版本Android 預設上webView 元件的 JavaScript Execution 或 File Access 設定是Disable的
WebView範例
MainActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/html/index.html");
}
Android web檔案 會放在app/assets下
webview.getSettings().setJavaScriptEnabled(true) 表示內嵌 javaScript 可執行
其中的 webview.loadUrl("file:///android_asset/html/index.html") 也可以改成HTTPs 方式從外面嵌入到裡面 webview.loadUrl("https://www.google.com/") 不過會需要在AndroidManifest.xml中 開網路權限
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
如果從頭寫一個APP 是很有挑戰的 需要具備很多知識 所以說開發者通常會使用框架 加速開發
框架會提供很多預先定義的元件與工具可以使用 不同框架 所使用的IDE與程式可能也不同
Flutter
Flutter 是由google 開發的開源手機框架 由 Dart 編寫 使用 Flutter SDK 應用程式可以跨Android, IOS, Web, Desktop 等 透過編譯好的Native Code 提供很好的效能
主程式同常會在lib下的 .dart 檔 寫完程式後 Flutter 會把程式編成 .so file 之後我們可以用 ghidra 進行分析
使用 Frame Work 能結構化的開發 並提供一定程度的安全性