1. 程式人生 > 其它 >安卓(Android)版本的spring開發

安卓(Android)版本的spring開發

安卓(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