作者:ruanbaoshuijingkou | 来源:互联网 | 2023-08-13 19:27
安卓(Android)版本的spring开发介绍安卓版spring,支持安卓前后端分离或者单体架构开发方式,前端采用熟悉的html、js甚至vue开发,java开发后台接口,好处是
安卓(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" />
<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