安卓(Android)版本的spring開發
阿新 • • 發佈:2022-02-12
安卓(Android)版本的spring開發
介紹
安卓版spring,支援安卓前後端分離或者單體架構開發方式,前端採用熟悉的html、js甚至vue開發,java開發後臺介面,好處是client可以是嵌入的webView,也可以是可訪問安卓IP的瀏覽器,拋棄安卓原本的ui介面開發方式
專案地址
https://gitee.com/muphy1112/android-spring
腳手架下載
git clone https://gitee.com/muphy1112/android-spring.git
軟體架構
- 基於http服務的方式開發安卓應用程式;
- 包含ioc、mvc、orm、lifecycle、全域性變數與監聽和各種工具等;
- 支援的註解:Autowired、Bean、Component、Configuration、Controller、PostConstruct、Repository、RequestMapping、RequestParam、RuphyApplication、Service
- 執行緒統一管理
- 支援環境變數的模板解析
- 支援的spring初始化的生命週期依次:Init#create、ApplicationContextAware#setApplicationContext、Init#start、@PostConstruct
1.spring 程式碼結構
2. webview顯示頁面
3. 瀏覽器顯示
使用說明
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.muphy.example" android:exported="true" android:installLocation="preferExternal"> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.INTERNET" /> <permission android:name="com.machinebook.customer.permission.JPUSH_MESSAGE" android:protectionLevel="signature" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Example"> <service android:name="org.eclipse.paho.android.service.MqttService" /> <!--MqttService--> <provider android:name="androidx.core.content.FileProvider" android:authorities="com.muphy.example.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" /> </provider> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
依賴
def room_version = "2.2.5" implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" implementation 'com.alibaba:fastjson:1.1.54.android' implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0' implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1' implementation 'com.faendir.rhino:rhino-android:1.6.0'
MainActivity.java