Compare commits

...

2 Commits
main ... 张杰

15
.gitignore vendored

@ -0,0 +1,15 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties

3
.idea/.gitignore vendored

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidTestResultsUserPreferences">
<option name="androidTestResultsTableState">
<map>
<entry key="1155961666">
<value>
<AndroidTestResultsTableState>
<option name="preferredColumnWidths">
<map>
<entry key="Duration" value="90" />
<entry key="Pixel_5_API_28" value="120" />
<entry key="Tests" value="360" />
</map>
</option>
</AndroidTestResultsTableState>
</value>
</entry>
<entry key="1851512406">
<value>
<AndroidTestResultsTableState>
<option name="preferredColumnWidths">
<map>
<entry key="Duration" value="90" />
<entry key="Pixel_5_API_28" value="120" />
<entry key="Tests" value="360" />
</map>
</option>
</AndroidTestResultsTableState>
</value>
</entry>
</map>
</option>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
<file url="file://$USER_HOME$/AppData/Local/Google/AndroidStudio2022.3/device-explorer/Pixel 5 API 28/data/data/com.example.final_project_app/databases/note.db" charset="UTF-8" />
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="jbr-17" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

@ -0,0 +1,5 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
</profile>
</component>

@ -0,0 +1,12 @@
<project version="4">
<component name="CodeInsightWorkspaceSettings">
<option name="optimizeImportsOnTheFly" value="true" />
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

1
app/.gitignore vendored

@ -0,0 +1 @@
/build

@ -0,0 +1,47 @@
plugins {
id("com.android.application")
}
android {
namespace = "com.example.final_project_app"
compileSdk = 33
defaultConfig {
applicationId = "com.example.final_project_app"
minSdk = 24
targetSdk = 33
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
dependencies {
//noinspection GradleCompatible,GradleCompatible
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.8.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
//轮播图依赖使用三方开源库youth5201314
implementation("io.github.youth5201314:banner:2.2.2")
//视频播放器依赖
implementation("com.android.support:recyclerview-v7:33.0.0")
//implementation("com.github.bumptech.glide:glide:4.8.0")
}

@ -0,0 +1,225 @@
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 266338304 bytes for G1 virtual space
# Possible reasons:
# The system is out of physical RAM or swap space
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# JVM is running with Zero Based Compressed Oops mode in which the Java heap is
# placed in the first 32GB address space. The Java Heap base address is the
# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress
# to set the Java Heap base and to place the Java Heap above 32GB virtual address.
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_windows.cpp:3769), pid=15780, tid=17432
#
# JRE version: (17.0.6) (build )
# Java VM: OpenJDK 64-Bit Server VM (17.0.6+0-b2043.56-10027231, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
--------------- S U M M A R Y ------------
Command Line: -Djava.awt.headless=true -Djava.util.logging.config.file=C:\Users\zhangjie\.android\utp\logging11419865298413337235properties -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant com.google.testing.platform.launcher.Launcher D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\core\0.0.8-alpha08\762b033d6dcf24e44af8ccc5428ceb3eef540e37\core-0.0.8-alpha08.jar --proto_config=C:\Users\zhangjie\.android\utp\runnerConfig11527354476253155336.pb --proto_server_config=C:\Users\zhangjie\.android\utp\serverConfig10002380561667279169.pb
Host: Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz, 8 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3636)
Time: Sun Jun 23 14:56:53 2024 Windows 10 , 64 bit Build 19041 (10.0.19041.3636) elapsed time: 0.008443 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x000001f275ea0010): JavaThread "Unknown thread" [_thread_in_vm, id=17432, stack(0x000000465ae00000,0x000000465af00000)]
Stack: [0x000000465ae00000,0x000000465af00000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x683c9a]
V [jvm.dll+0x8427a4]
V [jvm.dll+0x843f9e]
V [jvm.dll+0x844603]
V [jvm.dll+0x249b75]
V [jvm.dll+0x680b69]
V [jvm.dll+0x67505a]
V [jvm.dll+0x309acb]
V [jvm.dll+0x310f86]
V [jvm.dll+0x3608ee]
V [jvm.dll+0x360b1f]
V [jvm.dll+0x2dfbf8]
V [jvm.dll+0x2e0b64]
V [jvm.dll+0x814091]
V [jvm.dll+0x36e6a1]
V [jvm.dll+0x7f35cc]
V [jvm.dll+0x3f0e8f]
V [jvm.dll+0x3f29d1]
C [jli.dll+0x526b]
C [ucrtbase.dll+0x21bb2]
C [KERNEL32.DLL+0x17344]
C [ntdll.dll+0x4cc91]
--------------- P R O C E S S ---------------
Threads class SMR info:
_java_thread_list=0x00007ffd38ccc058, length=0, elements={
}
Java Threads: ( => current thread )
Other Threads:
0x000001f275f0bc40 GCTaskThread "GC Thread#0" [stack: 0x000000465af00000,0x000000465b000000] [id=14152]
0x000001f275f1c900 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000465b000000,0x000000465b100000] [id=20004]
0x000001f275f1dac0 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000465b100000,0x000000465b200000] [id=22240]
[error occurred during error reporting (printing all threads), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd38480797]
VM state: not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x000001f275e9c0a0] Heap_lock - owner thread: 0x000001f275ea0010
Heap address: 0x0000000702800000, size: 4056 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
CDS archive(s) mapped at: [0x0000000000000000-0x0000000000000000-0x0000000000000000), size 0, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
Narrow klass base: 0x0000000000000000, Narrow klass shift: 0, Narrow klass range: 0x0
GC Precious Log:
<Empty>
Heap:
garbage-first heap total 0K, used 0K [0x0000000702800000, 0x0000000800000000)
region size 2048K, 0 young (0K), 0 survivors (0K)
[error occurred during error reporting (printing heap information), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd3886da89]
GC Heap History (0 events):
No events
Dll operation events (1 events):
Event: 0.005 Loaded shared library D:\Android1\Android Studio\jbr\bin\java.dll
Deoptimization events (0 events):
No events
Classes unloaded (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
VM Operations (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
0x00007ff734710000 - 0x00007ff73471a000 D:\Android1\Android Studio\jbr\bin\java.exe
0x00007ffd96a10000 - 0x00007ffd96c08000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ffd95b50000 - 0x00007ffd95c0d000 C:\Windows\System32\KERNEL32.DLL
0x00007ffd94750000 - 0x00007ffd94a46000 C:\Windows\System32\KERNELBASE.dll
0x00007ffd942d0000 - 0x00007ffd943d0000 C:\Windows\System32\ucrtbase.dll
0x00007ffd735b0000 - 0x00007ffd735cb000 D:\Android1\Android Studio\jbr\bin\VCRUNTIME140.dll
0x00007ffd806d0000 - 0x00007ffd806e7000 D:\Android1\Android Studio\jbr\bin\jli.dll
0x00007ffd95f10000 - 0x00007ffd960af000 C:\Windows\System32\USER32.dll
0x00007ffd942a0000 - 0x00007ffd942c2000 C:\Windows\System32\win32u.dll
0x00007ffd94ec0000 - 0x00007ffd94eeb000 C:\Windows\System32\GDI32.dll
0x00007ffd7f3d0000 - 0x00007ffd7f66a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.4355_none_60b8b9eb71f62e16\COMCTL32.dll
0x00007ffd94180000 - 0x00007ffd94297000 C:\Windows\System32\gdi32full.dll
0x00007ffd960b0000 - 0x00007ffd9614e000 C:\Windows\System32\msvcrt.dll
0x00007ffd945c0000 - 0x00007ffd9465d000 C:\Windows\System32\msvcp_win.dll
0x00007ffd965a0000 - 0x00007ffd965cf000 C:\Windows\System32\IMM32.DLL
0x00007ffd735a0000 - 0x00007ffd735ac000 D:\Android1\Android Studio\jbr\bin\vcruntime140_1.dll
0x00007ffd73510000 - 0x00007ffd7359d000 D:\Android1\Android Studio\jbr\bin\msvcp140.dll
0x00007ffd38190000 - 0x00007ffd38dfe000 D:\Android1\Android Studio\jbr\bin\server\jvm.dll
0x00007ffd95aa0000 - 0x00007ffd95b50000 C:\Windows\System32\ADVAPI32.dll
0x00007ffd963d0000 - 0x00007ffd96470000 C:\Windows\System32\sechost.dll
0x00007ffd967c0000 - 0x00007ffd968e3000 C:\Windows\System32\RPCRT4.dll
0x00007ffd94720000 - 0x00007ffd94747000 C:\Windows\System32\bcrypt.dll
0x00007ffd83c90000 - 0x00007ffd83cb7000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ffd7a800000 - 0x00007ffd7a809000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffd8f600000 - 0x00007ffd8f60a000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ffd961b0000 - 0x00007ffd9621b000 C:\Windows\System32\WS2_32.dll
0x00007ffd91f50000 - 0x00007ffd91f62000 C:\Windows\SYSTEM32\kernel.appcore.dll
0x00007ffd8fd30000 - 0x00007ffd8fd3a000 D:\Android1\Android Studio\jbr\bin\jimage.dll
0x00007ffd91650000 - 0x00007ffd91834000 C:\Windows\SYSTEM32\DBGHELP.DLL
0x00007ffd7a670000 - 0x00007ffd7a6a4000 C:\Windows\SYSTEM32\dbgcore.DLL
0x00007ffd94530000 - 0x00007ffd945b2000 C:\Windows\System32\bcryptPrimitives.dll
0x00007ffd748f0000 - 0x00007ffd74915000 D:\Android1\Android Studio\jbr\bin\java.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;D:\Android1\Android Studio\jbr\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.4355_none_60b8b9eb71f62e16;D:\Android1\Android Studio\jbr\bin\server
VM Arguments:
jvm_args: -Djava.awt.headless=true -Djava.util.logging.config.file=C:\Users\zhangjie\.android\utp\logging11419865298413337235properties -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant
java_command: com.google.testing.platform.launcher.Launcher D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\core\0.0.8-alpha08\762b033d6dcf24e44af8ccc5428ceb3eef540e37\core-0.0.8-alpha08.jar --proto_config=C:\Users\zhangjie\.android\utp\runnerConfig11527354476253155336.pb --proto_server_config=C:\Users\zhangjie\.android\utp\serverConfig10002380561667279169.pb
java_class_path (initial): D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\launcher\0.0.8-alpha08\de8664b74f9b70fea224c610fd41b802805c72ab\launcher-0.0.8-alpha08.jar
Launcher Type: SUN_STANDARD
[Global flags]
intx CICompilerCount = 4 {product} {ergonomic}
uint ConcGCThreads = 2 {product} {ergonomic}
uint G1ConcRefinementThreads = 8 {product} {ergonomic}
size_t G1HeapRegionSize = 2097152 {product} {ergonomic}
uintx GCDrainStackTargetSize = 64 {product} {ergonomic}
size_t InitialHeapSize = 266338304 {product} {ergonomic}
size_t MarkStackSize = 4194304 {product} {ergonomic}
size_t MaxHeapSize = 4253024256 {product} {ergonomic}
size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic}
size_t MinHeapSize = 8388608 {product} {ergonomic}
uintx NonNMethodCodeHeapSize = 5839372 {pd product} {ergonomic}
uintx NonProfiledCodeHeapSize = 122909434 {pd product} {ergonomic}
uintx ProfiledCodeHeapSize = 122909434 {pd product} {ergonomic}
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic}
bool SegmentedCodeCache = true {product} {ergonomic}
size_t SoftMaxHeapSize = 4253024256 {manageable} {ergonomic}
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
bool UseCompressedOops = true {product lp64_product} {ergonomic}
bool UseG1GC = true {product} {ergonomic}
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic}
Logging:
Log output configuration:
#0: stdout all=warning uptime,level,tags
#1: stderr all=off uptime,level,tags
Environment Variables:
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_152
CLASSPATH=D:\tomcat\apache-tomcat-8.5.100\lib\servlet-api.jar;
PATH=C:\ProgramData\Oracle\Java\javapath;D:\python3.8\Scripts\;D:\python3.8\;D:\班级文件\操作系统原理与实践\CentOS7\bin\;C:\Program F;les (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Common Files\Oracle\Java\javapath;D:\Python\Scripts\;D:\Python\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\nodejs\;D:\class\C++\AHL-GEC-IDE(4.53)\gcc\bin;C:\Windows;C:\Windows\system32\wbem;D:\tomcat\apache-tomcat-8.5.100;D:\gitcode\Git\cmd;D:\gitcode\TortoiseGit\bin;D:\tomcat\apache-tomcat-8.5.100\bin;D:\tomcat\apache-tomcat-8.5.100\lib;%JAVA_HOME%\lib;%MAVEN_HOME%\bin;%JAVA_HOME%\bin;D:\c++\Tools\WinNT;D:\c++\MSDev98\Bin;D:\c++\Tools;D:\c++2\VC98\bin;C:\Users\zhangjie\AppData\Local\Microsoft\WindowsApps;D:\班级文件\Microsoft VS Code\bin;C:\;sers\zhangjie\AppData\Roaming\npm;D:\class\C++\AHL-GEC-IDE(4.53)\gcc\bin;
USERNAME=zhangjie
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 12, GenuineIntel
TMP=C:\Users\zhangjie\AppData\Local\Temp
TEMP=C:\Users\zhangjie\AppData\Local\Temp
JNI global refs:
[error occurred during error reporting (JNI global references), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd38247a10]
--------------- S Y S T E M ---------------
OS:
Windows 10 , 64 bit Build 19041 (10.0.19041.3636)
OS uptime: 1 days 23:50 hours
CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 12 microcode 0xde, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt
Memory: 4k page, system-wide physical 16216M (2154M free)
TotalPageFile size 22360M (AvailPageFile size 206M)
current process WorkingSet (physical memory assigned to process): 10M, peak: 10M
current process commit charge ("private bytes"): 60M, peak: 314M
vm_info: OpenJDK 64-Bit Server VM (17.0.6+0-b2043.56-10027231) for windows-amd64 JRE (17.0.6+0-b2043.56-10027231), built on Apr 28 2023 00:43:19 by "androidbuild" with MS VC++ 16.10 / 16.11 (VS2019)
END.

@ -0,0 +1,225 @@
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 266338304 bytes for G1 virtual space
# Possible reasons:
# The system is out of physical RAM or swap space
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# JVM is running with Zero Based Compressed Oops mode in which the Java heap is
# placed in the first 32GB address space. The Java Heap base address is the
# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress
# to set the Java Heap base and to place the Java Heap above 32GB virtual address.
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_windows.cpp:3769), pid=17016, tid=15660
#
# JRE version: (17.0.6) (build )
# Java VM: OpenJDK 64-Bit Server VM (17.0.6+0-b2043.56-10027231, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
--------------- S U M M A R Y ------------
Command Line: -Djava.awt.headless=true -Djava.util.logging.config.file=C:\Users\zhangjie\.android\utp\logging4388855037246714109properties -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant com.google.testing.platform.launcher.Launcher D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\core\0.0.8-alpha08\762b033d6dcf24e44af8ccc5428ceb3eef540e37\core-0.0.8-alpha08.jar --proto_config=C:\Users\zhangjie\.android\utp\runnerConfig15312039282092570587.pb --proto_server_config=C:\Users\zhangjie\.android\utp\serverConfig9031690270156445802.pb
Host: Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz, 8 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3636)
Time: Sun Jun 23 14:58:07 2024 Windows 10 , 64 bit Build 19041 (10.0.19041.3636) elapsed time: 0.006128 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x000001bfd281bdd0): JavaThread "Unknown thread" [_thread_in_vm, id=15660, stack(0x0000009669a00000,0x0000009669b00000)]
Stack: [0x0000009669a00000,0x0000009669b00000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x683c9a]
V [jvm.dll+0x8427a4]
V [jvm.dll+0x843f9e]
V [jvm.dll+0x844603]
V [jvm.dll+0x249b75]
V [jvm.dll+0x680b69]
V [jvm.dll+0x67505a]
V [jvm.dll+0x309acb]
V [jvm.dll+0x310f86]
V [jvm.dll+0x3608ee]
V [jvm.dll+0x360b1f]
V [jvm.dll+0x2dfbf8]
V [jvm.dll+0x2e0b64]
V [jvm.dll+0x814091]
V [jvm.dll+0x36e6a1]
V [jvm.dll+0x7f35cc]
V [jvm.dll+0x3f0e8f]
V [jvm.dll+0x3f29d1]
C [jli.dll+0x526b]
C [ucrtbase.dll+0x21bb2]
C [KERNEL32.DLL+0x17344]
C [ntdll.dll+0x4cc91]
--------------- P R O C E S S ---------------
Threads class SMR info:
_java_thread_list=0x00007ffd38ccc058, length=0, elements={
}
Java Threads: ( => current thread )
Other Threads:
0x000001bfd2886c10 GCTaskThread "GC Thread#0" [stack: 0x0000009669b00000,0x0000009669c00000] [id=14612]
0x000001bfd28978d0 ConcurrentGCThread "G1 Main Marker" [stack: 0x0000009669c00000,0x0000009669d00000] [id=19644]
0x000001bfd2898a80 ConcurrentGCThread "G1 Conc#0" [stack: 0x0000009669d00000,0x0000009669e00000] [id=18936]
[error occurred during error reporting (printing all threads), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd38480797]
VM state: not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x000001bfd28169d0] Heap_lock - owner thread: 0x000001bfd281bdd0
Heap address: 0x0000000702800000, size: 4056 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
CDS archive(s) mapped at: [0x0000000000000000-0x0000000000000000-0x0000000000000000), size 0, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
Narrow klass base: 0x0000000000000000, Narrow klass shift: 0, Narrow klass range: 0x0
GC Precious Log:
<Empty>
Heap:
garbage-first heap total 0K, used 0K [0x0000000702800000, 0x0000000800000000)
region size 2048K, 0 young (0K), 0 survivors (0K)
[error occurred during error reporting (printing heap information), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd3886da89]
GC Heap History (0 events):
No events
Dll operation events (1 events):
Event: 0.004 Loaded shared library D:\Android1\Android Studio\jbr\bin\java.dll
Deoptimization events (0 events):
No events
Classes unloaded (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
VM Operations (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
0x00007ff734710000 - 0x00007ff73471a000 D:\Android1\Android Studio\jbr\bin\java.exe
0x00007ffd96a10000 - 0x00007ffd96c08000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ffd95b50000 - 0x00007ffd95c0d000 C:\Windows\System32\KERNEL32.DLL
0x00007ffd94750000 - 0x00007ffd94a46000 C:\Windows\System32\KERNELBASE.dll
0x00007ffd942d0000 - 0x00007ffd943d0000 C:\Windows\System32\ucrtbase.dll
0x00007ffd735b0000 - 0x00007ffd735cb000 D:\Android1\Android Studio\jbr\bin\VCRUNTIME140.dll
0x00007ffd806d0000 - 0x00007ffd806e7000 D:\Android1\Android Studio\jbr\bin\jli.dll
0x00007ffd95f10000 - 0x00007ffd960af000 C:\Windows\System32\USER32.dll
0x00007ffd942a0000 - 0x00007ffd942c2000 C:\Windows\System32\win32u.dll
0x00007ffd7f3d0000 - 0x00007ffd7f66a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.4355_none_60b8b9eb71f62e16\COMCTL32.dll
0x00007ffd94ec0000 - 0x00007ffd94eeb000 C:\Windows\System32\GDI32.dll
0x00007ffd960b0000 - 0x00007ffd9614e000 C:\Windows\System32\msvcrt.dll
0x00007ffd94180000 - 0x00007ffd94297000 C:\Windows\System32\gdi32full.dll
0x00007ffd945c0000 - 0x00007ffd9465d000 C:\Windows\System32\msvcp_win.dll
0x00007ffd965a0000 - 0x00007ffd965cf000 C:\Windows\System32\IMM32.DLL
0x00007ffd735a0000 - 0x00007ffd735ac000 D:\Android1\Android Studio\jbr\bin\vcruntime140_1.dll
0x00007ffd73510000 - 0x00007ffd7359d000 D:\Android1\Android Studio\jbr\bin\msvcp140.dll
0x00007ffd38190000 - 0x00007ffd38dfe000 D:\Android1\Android Studio\jbr\bin\server\jvm.dll
0x00007ffd95aa0000 - 0x00007ffd95b50000 C:\Windows\System32\ADVAPI32.dll
0x00007ffd963d0000 - 0x00007ffd96470000 C:\Windows\System32\sechost.dll
0x00007ffd967c0000 - 0x00007ffd968e3000 C:\Windows\System32\RPCRT4.dll
0x00007ffd94720000 - 0x00007ffd94747000 C:\Windows\System32\bcrypt.dll
0x00007ffd83c90000 - 0x00007ffd83cb7000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ffd7a800000 - 0x00007ffd7a809000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffd8f600000 - 0x00007ffd8f60a000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ffd961b0000 - 0x00007ffd9621b000 C:\Windows\System32\WS2_32.dll
0x00007ffd91f50000 - 0x00007ffd91f62000 C:\Windows\SYSTEM32\kernel.appcore.dll
0x00007ffd8fd30000 - 0x00007ffd8fd3a000 D:\Android1\Android Studio\jbr\bin\jimage.dll
0x00007ffd91650000 - 0x00007ffd91834000 C:\Windows\SYSTEM32\DBGHELP.DLL
0x00007ffd7a670000 - 0x00007ffd7a6a4000 C:\Windows\SYSTEM32\dbgcore.DLL
0x00007ffd94530000 - 0x00007ffd945b2000 C:\Windows\System32\bcryptPrimitives.dll
0x00007ffd748f0000 - 0x00007ffd74915000 D:\Android1\Android Studio\jbr\bin\java.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;D:\Android1\Android Studio\jbr\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.4355_none_60b8b9eb71f62e16;D:\Android1\Android Studio\jbr\bin\server
VM Arguments:
jvm_args: -Djava.awt.headless=true -Djava.util.logging.config.file=C:\Users\zhangjie\.android\utp\logging4388855037246714109properties -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant
java_command: com.google.testing.platform.launcher.Launcher D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\core\0.0.8-alpha08\762b033d6dcf24e44af8ccc5428ceb3eef540e37\core-0.0.8-alpha08.jar --proto_config=C:\Users\zhangjie\.android\utp\runnerConfig15312039282092570587.pb --proto_server_config=C:\Users\zhangjie\.android\utp\serverConfig9031690270156445802.pb
java_class_path (initial): D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\launcher\0.0.8-alpha08\de8664b74f9b70fea224c610fd41b802805c72ab\launcher-0.0.8-alpha08.jar
Launcher Type: SUN_STANDARD
[Global flags]
intx CICompilerCount = 4 {product} {ergonomic}
uint ConcGCThreads = 2 {product} {ergonomic}
uint G1ConcRefinementThreads = 8 {product} {ergonomic}
size_t G1HeapRegionSize = 2097152 {product} {ergonomic}
uintx GCDrainStackTargetSize = 64 {product} {ergonomic}
size_t InitialHeapSize = 266338304 {product} {ergonomic}
size_t MarkStackSize = 4194304 {product} {ergonomic}
size_t MaxHeapSize = 4253024256 {product} {ergonomic}
size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic}
size_t MinHeapSize = 8388608 {product} {ergonomic}
uintx NonNMethodCodeHeapSize = 5839372 {pd product} {ergonomic}
uintx NonProfiledCodeHeapSize = 122909434 {pd product} {ergonomic}
uintx ProfiledCodeHeapSize = 122909434 {pd product} {ergonomic}
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic}
bool SegmentedCodeCache = true {product} {ergonomic}
size_t SoftMaxHeapSize = 4253024256 {manageable} {ergonomic}
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
bool UseCompressedOops = true {product lp64_product} {ergonomic}
bool UseG1GC = true {product} {ergonomic}
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic}
Logging:
Log output configuration:
#0: stdout all=warning uptime,level,tags
#1: stderr all=off uptime,level,tags
Environment Variables:
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_152
CLASSPATH=D:\tomcat\apache-tomcat-8.5.100\lib\servlet-api.jar;
PATH=C:\ProgramData\Oracle\Java\javapath;D:\python3.8\Scripts\;D:\python3.8\;D:\班级文件\操作系统原理与实践\CentOS7\bin\;C:\Program F;les (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Common Files\Oracle\Java\javapath;D:\Python\Scripts\;D:\Python\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\nodejs\;D:\class\C++\AHL-GEC-IDE(4.53)\gcc\bin;C:\Windows;C:\Windows\system32\wbem;D:\tomcat\apache-tomcat-8.5.100;D:\gitcode\Git\cmd;D:\gitcode\TortoiseGit\bin;D:\tomcat\apache-tomcat-8.5.100\bin;D:\tomcat\apache-tomcat-8.5.100\lib;%JAVA_HOME%\lib;%MAVEN_HOME%\bin;%JAVA_HOME%\bin;D:\c++\Tools\WinNT;D:\c++\MSDev98\Bin;D:\c++\Tools;D:\c++2\VC98\bin;C:\Users\zhangjie\AppData\Local\Microsoft\WindowsApps;D:\班级文件\Microsoft VS Code\bin;C:\;sers\zhangjie\AppData\Roaming\npm;D:\class\C++\AHL-GEC-IDE(4.53)\gcc\bin;
USERNAME=zhangjie
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 12, GenuineIntel
TMP=C:\Users\zhangjie\AppData\Local\Temp
TEMP=C:\Users\zhangjie\AppData\Local\Temp
JNI global refs:
[error occurred during error reporting (JNI global references), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd38247a10]
--------------- S Y S T E M ---------------
OS:
Windows 10 , 64 bit Build 19041 (10.0.19041.3636)
OS uptime: 1 days 23:51 hours
CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 12 microcode 0xde, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt
Memory: 4k page, system-wide physical 16216M (2205M free)
TotalPageFile size 22360M (AvailPageFile size 230M)
current process WorkingSet (physical memory assigned to process): 10M, peak: 10M
current process commit charge ("private bytes"): 60M, peak: 314M
vm_info: OpenJDK 64-Bit Server VM (17.0.6+0-b2043.56-10027231) for windows-amd64 JRE (17.0.6+0-b2043.56-10027231), built on Apr 28 2023 00:43:19 by "androidbuild" with MS VC++ 16.10 / 16.11 (VS2019)
END.

@ -0,0 +1,225 @@
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 266338304 bytes for G1 virtual space
# Possible reasons:
# The system is out of physical RAM or swap space
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# JVM is running with Zero Based Compressed Oops mode in which the Java heap is
# placed in the first 32GB address space. The Java Heap base address is the
# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress
# to set the Java Heap base and to place the Java Heap above 32GB virtual address.
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_windows.cpp:3769), pid=20600, tid=17612
#
# JRE version: (17.0.6) (build )
# Java VM: OpenJDK 64-Bit Server VM (17.0.6+0-b2043.56-10027231, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
--------------- S U M M A R Y ------------
Command Line: -Djava.awt.headless=true -Djava.util.logging.config.file=C:\Users\zhangjie\.android\utp\logging1685592092456669948properties -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant com.google.testing.platform.launcher.Launcher D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\core\0.0.8-alpha08\762b033d6dcf24e44af8ccc5428ceb3eef540e37\core-0.0.8-alpha08.jar --proto_config=C:\Users\zhangjie\.android\utp\runnerConfig13908008858794055614.pb --proto_server_config=C:\Users\zhangjie\.android\utp\serverConfig11778306095086190623.pb
Host: Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz, 8 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3636)
Time: Sun Jun 23 14:59:00 2024 Windows 10 , 64 bit Build 19041 (10.0.19041.3636) elapsed time: 0.006894 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x0000021c2d16de00): JavaThread "Unknown thread" [_thread_in_vm, id=17612, stack(0x000000adc7c00000,0x000000adc7d00000)]
Stack: [0x000000adc7c00000,0x000000adc7d00000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x683c9a]
V [jvm.dll+0x8427a4]
V [jvm.dll+0x843f9e]
V [jvm.dll+0x844603]
V [jvm.dll+0x249b75]
V [jvm.dll+0x680b69]
V [jvm.dll+0x67505a]
V [jvm.dll+0x309acb]
V [jvm.dll+0x310f86]
V [jvm.dll+0x3608ee]
V [jvm.dll+0x360b1f]
V [jvm.dll+0x2dfbf8]
V [jvm.dll+0x2e0b64]
V [jvm.dll+0x814091]
V [jvm.dll+0x36e6a1]
V [jvm.dll+0x7f35cc]
V [jvm.dll+0x3f0e8f]
V [jvm.dll+0x3f29d1]
C [jli.dll+0x526b]
C [ucrtbase.dll+0x21bb2]
C [KERNEL32.DLL+0x17344]
C [ntdll.dll+0x4cc91]
--------------- P R O C E S S ---------------
Threads class SMR info:
_java_thread_list=0x00007ffd38ccc058, length=0, elements={
}
Java Threads: ( => current thread )
Other Threads:
0x0000021c2d1d97c0 GCTaskThread "GC Thread#0" [stack: 0x000000adc7d00000,0x000000adc7e00000] [id=22252]
0x0000021c2d1ea480 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000adc7e00000,0x000000adc7f00000] [id=19956]
0x0000021c2d1eb630 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000adc7f00000,0x000000adc8000000] [id=6580]
[error occurred during error reporting (printing all threads), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd38480797]
VM state: not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x0000021c2d16ac10] Heap_lock - owner thread: 0x0000021c2d16de00
Heap address: 0x0000000702800000, size: 4056 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
CDS archive(s) mapped at: [0x0000000000000000-0x0000000000000000-0x0000000000000000), size 0, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
Narrow klass base: 0x0000000000000000, Narrow klass shift: 0, Narrow klass range: 0x0
GC Precious Log:
<Empty>
Heap:
garbage-first heap total 0K, used 0K [0x0000000702800000, 0x0000000800000000)
region size 2048K, 0 young (0K), 0 survivors (0K)
[error occurred during error reporting (printing heap information), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd3886da89]
GC Heap History (0 events):
No events
Dll operation events (1 events):
Event: 0.004 Loaded shared library D:\Android1\Android Studio\jbr\bin\java.dll
Deoptimization events (0 events):
No events
Classes unloaded (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
VM Operations (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
0x00007ff734710000 - 0x00007ff73471a000 D:\Android1\Android Studio\jbr\bin\java.exe
0x00007ffd96a10000 - 0x00007ffd96c08000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ffd95b50000 - 0x00007ffd95c0d000 C:\Windows\System32\KERNEL32.DLL
0x00007ffd94750000 - 0x00007ffd94a46000 C:\Windows\System32\KERNELBASE.dll
0x00007ffd942d0000 - 0x00007ffd943d0000 C:\Windows\System32\ucrtbase.dll
0x00007ffd806d0000 - 0x00007ffd806e7000 D:\Android1\Android Studio\jbr\bin\jli.dll
0x00007ffd735b0000 - 0x00007ffd735cb000 D:\Android1\Android Studio\jbr\bin\VCRUNTIME140.dll
0x00007ffd95f10000 - 0x00007ffd960af000 C:\Windows\System32\USER32.dll
0x00007ffd942a0000 - 0x00007ffd942c2000 C:\Windows\System32\win32u.dll
0x00007ffd7f3d0000 - 0x00007ffd7f66a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.4355_none_60b8b9eb71f62e16\COMCTL32.dll
0x00007ffd94ec0000 - 0x00007ffd94eeb000 C:\Windows\System32\GDI32.dll
0x00007ffd960b0000 - 0x00007ffd9614e000 C:\Windows\System32\msvcrt.dll
0x00007ffd94180000 - 0x00007ffd94297000 C:\Windows\System32\gdi32full.dll
0x00007ffd945c0000 - 0x00007ffd9465d000 C:\Windows\System32\msvcp_win.dll
0x00007ffd965a0000 - 0x00007ffd965cf000 C:\Windows\System32\IMM32.DLL
0x00007ffd735a0000 - 0x00007ffd735ac000 D:\Android1\Android Studio\jbr\bin\vcruntime140_1.dll
0x00007ffd73510000 - 0x00007ffd7359d000 D:\Android1\Android Studio\jbr\bin\msvcp140.dll
0x00007ffd38190000 - 0x00007ffd38dfe000 D:\Android1\Android Studio\jbr\bin\server\jvm.dll
0x00007ffd95aa0000 - 0x00007ffd95b50000 C:\Windows\System32\ADVAPI32.dll
0x00007ffd963d0000 - 0x00007ffd96470000 C:\Windows\System32\sechost.dll
0x00007ffd967c0000 - 0x00007ffd968e3000 C:\Windows\System32\RPCRT4.dll
0x00007ffd94720000 - 0x00007ffd94747000 C:\Windows\System32\bcrypt.dll
0x00007ffd7a800000 - 0x00007ffd7a809000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffd83c90000 - 0x00007ffd83cb7000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ffd8f600000 - 0x00007ffd8f60a000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ffd961b0000 - 0x00007ffd9621b000 C:\Windows\System32\WS2_32.dll
0x00007ffd91f50000 - 0x00007ffd91f62000 C:\Windows\SYSTEM32\kernel.appcore.dll
0x00007ffd8fd30000 - 0x00007ffd8fd3a000 D:\Android1\Android Studio\jbr\bin\jimage.dll
0x00007ffd91650000 - 0x00007ffd91834000 C:\Windows\SYSTEM32\DBGHELP.DLL
0x00007ffd7a670000 - 0x00007ffd7a6a4000 C:\Windows\SYSTEM32\dbgcore.DLL
0x00007ffd94530000 - 0x00007ffd945b2000 C:\Windows\System32\bcryptPrimitives.dll
0x00007ffd748f0000 - 0x00007ffd74915000 D:\Android1\Android Studio\jbr\bin\java.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;D:\Android1\Android Studio\jbr\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.4355_none_60b8b9eb71f62e16;D:\Android1\Android Studio\jbr\bin\server
VM Arguments:
jvm_args: -Djava.awt.headless=true -Djava.util.logging.config.file=C:\Users\zhangjie\.android\utp\logging1685592092456669948properties -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant
java_command: com.google.testing.platform.launcher.Launcher D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\core\0.0.8-alpha08\762b033d6dcf24e44af8ccc5428ceb3eef540e37\core-0.0.8-alpha08.jar --proto_config=C:\Users\zhangjie\.android\utp\runnerConfig13908008858794055614.pb --proto_server_config=C:\Users\zhangjie\.android\utp\serverConfig11778306095086190623.pb
java_class_path (initial): D:\Android2\gradle-8.0\caches\modules-2\files-2.1\com.google.testing.platform\launcher\0.0.8-alpha08\de8664b74f9b70fea224c610fd41b802805c72ab\launcher-0.0.8-alpha08.jar
Launcher Type: SUN_STANDARD
[Global flags]
intx CICompilerCount = 4 {product} {ergonomic}
uint ConcGCThreads = 2 {product} {ergonomic}
uint G1ConcRefinementThreads = 8 {product} {ergonomic}
size_t G1HeapRegionSize = 2097152 {product} {ergonomic}
uintx GCDrainStackTargetSize = 64 {product} {ergonomic}
size_t InitialHeapSize = 266338304 {product} {ergonomic}
size_t MarkStackSize = 4194304 {product} {ergonomic}
size_t MaxHeapSize = 4253024256 {product} {ergonomic}
size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic}
size_t MinHeapSize = 8388608 {product} {ergonomic}
uintx NonNMethodCodeHeapSize = 5839372 {pd product} {ergonomic}
uintx NonProfiledCodeHeapSize = 122909434 {pd product} {ergonomic}
uintx ProfiledCodeHeapSize = 122909434 {pd product} {ergonomic}
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic}
bool SegmentedCodeCache = true {product} {ergonomic}
size_t SoftMaxHeapSize = 4253024256 {manageable} {ergonomic}
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
bool UseCompressedOops = true {product lp64_product} {ergonomic}
bool UseG1GC = true {product} {ergonomic}
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic}
Logging:
Log output configuration:
#0: stdout all=warning uptime,level,tags
#1: stderr all=off uptime,level,tags
Environment Variables:
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_152
CLASSPATH=D:\tomcat\apache-tomcat-8.5.100\lib\servlet-api.jar;
PATH=C:\ProgramData\Oracle\Java\javapath;D:\python3.8\Scripts\;D:\python3.8\;D:\班级文件\操作系统原理与实践\CentOS7\bin\;C:\Program F;les (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Common Files\Oracle\Java\javapath;D:\Python\Scripts\;D:\Python\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\nodejs\;D:\class\C++\AHL-GEC-IDE(4.53)\gcc\bin;C:\Windows;C:\Windows\system32\wbem;D:\tomcat\apache-tomcat-8.5.100;D:\gitcode\Git\cmd;D:\gitcode\TortoiseGit\bin;D:\tomcat\apache-tomcat-8.5.100\bin;D:\tomcat\apache-tomcat-8.5.100\lib;%JAVA_HOME%\lib;%MAVEN_HOME%\bin;%JAVA_HOME%\bin;D:\c++\Tools\WinNT;D:\c++\MSDev98\Bin;D:\c++\Tools;D:\c++2\VC98\bin;C:\Users\zhangjie\AppData\Local\Microsoft\WindowsApps;D:\班级文件\Microsoft VS Code\bin;C:\;sers\zhangjie\AppData\Roaming\npm;D:\class\C++\AHL-GEC-IDE(4.53)\gcc\bin;
USERNAME=zhangjie
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 12, GenuineIntel
TMP=C:\Users\zhangjie\AppData\Local\Temp
TEMP=C:\Users\zhangjie\AppData\Local\Temp
JNI global refs:
[error occurred during error reporting (JNI global references), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd38247a10]
--------------- S Y S T E M ---------------
OS:
Windows 10 , 64 bit Build 19041 (10.0.19041.3636)
OS uptime: 1 days 23:52 hours
CPU: total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 12 microcode 0xde, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt
Memory: 4k page, system-wide physical 16216M (2060M free)
TotalPageFile size 22360M (AvailPageFile size 128M)
current process WorkingSet (physical memory assigned to process): 10M, peak: 10M
current process commit charge ("private bytes"): 60M, peak: 314M
vm_info: OpenJDK 64-Bit Server VM (17.0.6+0-b2043.56-10027231) for windows-amd64 JRE (17.0.6+0-b2043.56-10027231), built on Apr 28 2023 00:43:19 by "androidbuild" with MS VC++ 16.10 / 16.11 (VS2019)
END.

@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

@ -0,0 +1,26 @@
package com.example.final_project_app;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.example.final_project_app", appContext.getPackageName());
}
}

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- 添加网络权限 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 读取权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Final_Project_app"
tools:targetApi="31">
<activity
android:name=".ui.waitActivity5"
android:exported="false" />
<activity
android:name=".ui.waitActivity3"
android:exported="false" />
<activity
android:name=".ui.waitActivity2"
android:exported="false" />
<activity
android:name=".ui.waitActivity"
android:exported="false" />
<activity
android:name=".PlayActivity"
android:exported="false" />
<activity
android:name=".sql.UpdateNoteActivity"
android:exported="true" />
<activity
android:name=".sql.AddNoteActivity"
android:exported="true" />
<activity
android:name=".Helpctivity"
android:exported="true" />
<activity
android:name=".AboutUsActivity"
android:exported="true" />
<activity
android:name=".IntroducttoryActivity"
android:exported="true" />
<activity
android:name=".StartActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".LoginActivity"
android:exported="true" />
<activity
android:name=".RegistActivity"
android:exported="true" />
<activity
android:name=".MainActivity"
android:exported="true" />
</application>
</manifest>

@ -0,0 +1,24 @@
package com.example.final_project_app;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class AboutUsActivity extends AppCompatActivity {
private Button btn_back;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about_us);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
}

@ -0,0 +1,157 @@
package com.example.final_project_app.Fragment;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.final_project_app.R;
import com.youth.banner.Banner;
import com.youth.banner.indicator.CircleIndicator;
import java.util.ArrayList;
import java.util.List;
public class FirstFragment extends Fragment {
//菜单栏按钮
private Button menu_bnt1,menu_btn2,menu_btn3,menu_btn4;
//定义轮播图片
private final ArrayList<bannerBean> banners;
//定义列表
private List<CultrualData> CuList = new ArrayList<CultrualData>();
//定义布局
private RecyclerView recyclerView;
//定义适配器
CultrualAdapter adapter;
//轮播图
public FirstFragment() {
banners = new ArrayList<>();
banners.add(new bannerBean(R.drawable.banner1));
banners.add(new bannerBean(R.drawable.banner2));
banners.add(new bannerBean(R.drawable.banner3));
banners.add(new bannerBean(R.drawable.banner4));
banners.add(new bannerBean(R.drawable.banner5));
banners.add(new bannerBean(R.drawable.banner6));
banners.add(new bannerBean(R.drawable.banner7));
banners.add(new bannerBean(R.drawable.banner8));
banners.add(new bannerBean(R.drawable.banner9));
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fg_first, container, false); // 通过inflater获取页面
initCrlists();
//获取recyclerview水平可滑动列表
recyclerView = inflate.findViewById(R.id.recyclerview);
adapter = new CultrualAdapter();
recyclerView.setAdapter(adapter);
LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
//设置间隔线
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL);
recyclerView.addItemDecoration(dividerItemDecoration);
layoutManager.setOrientation(recyclerView.HORIZONTAL);//水平/垂直显示
recyclerView.setLayoutManager(layoutManager);
//获取banner
Banner banner = inflate.findViewById(R.id.banner);
//设置banner
//添加生命周期,回调这个方法
banner.addBannerLifecycleObserver(this)
//为banner设置适配器并将数据传递进去
.setAdapter(new BannerViewAdapter(banners, this))
//添加指示器
.setIndicator(new CircleIndicator(getContext()));
return inflate;
//返回inflate对象
}
//菜单按钮点击事件
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
//文物列表通过add将数据加入列表中
private void initCrlists() {
CultrualData list1 = new CultrualData("物联网IoT技术物联网技术在智能仓库管理系统中扮演着重要的角色" +
"可以实现对仓库设备、货物、运输工具等的实时监控和数据采集,提高仓库运作的效率和透明度。", R.drawable.wulianwang);
CuList.add(list1);
CultrualData list2 = new CultrualData("无人机和无人车:无人机和无人车可以用于仓库内的库存管理和货物分拣," +
"实现自动化的仓库操作和物流管理,有效提高作业效率。", R.drawable.wurenji);
CuList.add(list2);
CultrualData list3 = new CultrualData("人工智能AI和机器学习通过人工智能和机器学习技术智能仓库管" +
"理系统可以对仓库数据进行智能分析和预测,优化仓储布局、库存管理和订单处理等流程,提高仓库运营效率。", R.drawable.jiqiren);
CuList.add(list3);
CultrualData list4 = new CultrualData("大数据分析:利用大数据分析技术对仓库数据进行深入的挖掘和分析,可以" +
"帮助仓库管理系统更好地了解仓库运作情况,发现潜在问题并提出优化建议。", R.drawable.dashuju);
CuList.add(list4);
CultrualData list5 = new CultrualData("无人机自动化技术:是一种重要的创新,它极大地提高了仓库作业的效率、" +
"降低了成本,并实现了仓库的智能化管理。", R.drawable.zidonghua);
CuList.add(list5);
CultrualData list6 = new CultrualData("虚拟现实VR和增强现实AR技术通过虚拟现实和增强现实技术可" +
"以帮助仓库管理人员更直观地了解仓库内部情况,进行培训和模拟操作,提高管理人员和操作人员的工作效率。", R.drawable.xunivr);
CuList.add(list6);
}
class CultrualAdapter extends RecyclerView.Adapter<MyViewHoder> {
@NonNull
@Override
public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = View.inflate(getContext(), R.layout.cltrua_list, null);
MyViewHoder myViewHoder = new MyViewHoder(view);
// 将View对象传入ViewHolder构造函数创建ViewHolder对象并返回
return myViewHoder;
}
// onBindViewHolder方法用于绑定数据到ViewHolder对象
@Override
public void onBindViewHolder(@NonNull MyViewHoder holder, @SuppressLint("RecyclerView") int position) {
// 从数据列表中获取当前位置的数据
CultrualData Cul = CuList.get(position);
//第二步
// 将数据设置到ViewHolder对象的textView中
// holder.textView.setText(fruit.getName());//fruit.getImageId()
holder.imageview.setBackgroundResource(Cul.getImageId());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getContext(),
""+CuList.get(position),
Toast.LENGTH_LONG).show();
}
});
}
@Override
public int getItemCount() {
return CuList.size();
}
}
class MyViewHoder extends RecyclerView.ViewHolder {
TextView textView;
ImageView imageview;
public MyViewHoder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.fruit_name);
imageview = itemView.findViewById(R.id.fruit_image);
}
}
}

@ -0,0 +1,49 @@
package com.example.final_project_app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
import com.example.final_project_app.R;
import java.util.ArrayList;
import java.util.List;
public class TwoFragment extends FirstFragment{
RecyclerView recyclerView;
List<Movie> movieList;
MovieAdapter movieAdapter;
private static final String TAG="MovieActivity";
//类声明和成员变量two基础恒frist
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fg_two,container,false);
return view;
}//oncreateview方法创建和返回该关联视图层次结构
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
recyclerView = getActivity().findViewById(R.id.fg_tworecyclerview);
initData();
}
private void initData() {
//建立动态数组存放数据
movieList = new ArrayList<>();
/* //获取本地监控视频*/
Movie one=new Movie("货物1","android.resource://"+getActivity().getPackageName()+"/"+R.raw.hw1);
movieList.add(one);
Movie two=new Movie("货物2","android.resource://"+ getActivity().getPackageName()+"/"+R.raw.hw2);
movieList.add(two);
//将视频显示在控件上
movieAdapter = new MovieAdapter(movieList);
StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(movieAdapter);
}
}

@ -0,0 +1,158 @@
package com.example.final_project_app.Fragment;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.final_project_app.R;
import com.youth.banner.Banner;
import com.youth.banner.indicator.CircleIndicator;
import java.util.ArrayList;
import java.util.List;
public class fiveFragment extends Fragment {
//菜单栏按钮
private Button menu_bnt1,menu_btn2,menu_btn3,menu_btn4;
//定义轮播图片
private final ArrayList<bannerBean> banners;
//定义列表
private List<CultrualData> CuList = new ArrayList<CultrualData>();
//定义布局
private RecyclerView recyclerView;
//定义适配器
CultrualAdapter adapter;
//轮播
public fiveFragment() {
//本地图片
banners = new ArrayList<>();
banners.add(new bannerBean(R.drawable.banner1));
banners.add(new bannerBean(R.drawable.banner2));
banners.add(new bannerBean(R.drawable.banner3));
banners.add(new bannerBean(R.drawable.banner4));
banners.add(new bannerBean(R.drawable.banner5));
banners.add(new bannerBean(R.drawable.banner6));
banners.add(new bannerBean(R.drawable.banner7));
banners.add(new bannerBean(R.drawable.banner8));
banners.add(new bannerBean(R.drawable.banner9));
}
//
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fg_five, container, false); // 通过inflater获取页面
initCrlists();
//获取recyclerview水平可滑动列表
recyclerView = inflate.findViewById(R.id.recyclerview);
adapter = new CultrualAdapter();
recyclerView.setAdapter(adapter);
LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
//设置间隔线
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL);
recyclerView.addItemDecoration(dividerItemDecoration);
layoutManager.setOrientation(recyclerView.HORIZONTAL);//水平/垂直显示
recyclerView.setLayoutManager(layoutManager);
//获取banner
Banner banner = inflate.findViewById(R.id.banner);
//设置banner
//添加生命周期,回调这个方法
banner.addBannerLifecycleObserver(this)
//为banner设置适配器并将数据传递进去
.setAdapter(new BannerViewAdapter(banners, this))
//添加指示器
.setIndicator(new CircleIndicator(getContext()));
return inflate;
//返回inflate对象
}
//菜单按钮点击事件
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
//文物列表通过add将数据加入列表中
private void initCrlists() {
CultrualData list1 = new CultrualData("物联网IoT技术物联网技术在智能仓库管理系统中扮演着重要的角色" +
"可以实现对仓库设备、货物、运输工具等的实时监控和数据采集,提高仓库运作的效率和透明度。", R.drawable.wulianwang);
CuList.add(list1);
CultrualData list2 = new CultrualData("无人机和无人车:无人机和无人车可以用于仓库内的库存管理和货物分拣," +
"实现自动化的仓库操作和物流管理,有效提高作业效率。", R.drawable.wurenji);
CuList.add(list2);
CultrualData list3 = new CultrualData("人工智能AI和机器学习通过人工智能和机器学习技术智能仓库管" +
"理系统可以对仓库数据进行智能分析和预测,优化仓储布局、库存管理和订单处理等流程,提高仓库运营效率。", R.drawable.jiqiren);
CuList.add(list3);
CultrualData list4 = new CultrualData("大数据分析:利用大数据分析技术对仓库数据进行深入的挖掘和分析,可以" +
"帮助仓库管理系统更好地了解仓库运作情况,发现潜在问题并提出优化建议。", R.drawable.dashuju);
CuList.add(list4);
CultrualData list5 = new CultrualData("无人机自动化技术:是一种重要的创新,它极大地提高了仓库作业的效率、" +
"降低了成本,并实现了仓库的智能化管理。", R.drawable.zidonghua);
CuList.add(list5);
CultrualData list6 = new CultrualData("虚拟现实VR和增强现实AR技术通过虚拟现实和增强现实技术可" +
"以帮助仓库管理人员更直观地了解仓库内部情况,进行培训和模拟操作,提高管理人员和操作人员的工作效率。", R.drawable.xunivr);
CuList.add(list6);
}
class CultrualAdapter extends RecyclerView.Adapter<MyViewHoder> {
@NonNull
@Override
public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = View.inflate(getContext(), R.layout.cltrua_list, null);
MyViewHoder myViewHoder = new MyViewHoder(view);
// 将View对象传入ViewHolder构造函数创建ViewHolder对象并返回
return myViewHoder;
}
// onBindViewHolder方法用于绑定数据到ViewHolder对象
// 参数holder表示要绑定的ViewHolder对象position表示当前项的位置
@Override
public void onBindViewHolder(@NonNull MyViewHoder holder, @SuppressLint("RecyclerView") int position) {
// 从数据列表中获取当前位置的数据
CultrualData Cul = CuList.get(position);
//第二步
// 将数据设置到ViewHolder对象的textView中
// holder.textView.setText(fruit.getName());//fruit.getImageId()
holder.imageview.setBackgroundResource(Cul.getImageId());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getContext(),
""+CuList.get(position),
Toast.LENGTH_LONG).show();
}
});
}
@Override
public int getItemCount() {
return CuList.size();
}
}
class MyViewHoder extends RecyclerView.ViewHolder {
TextView textView;
ImageView imageview;
public MyViewHoder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.fruit_name);
imageview = itemView.findViewById(R.id.fruit_image);
}
}
}

@ -0,0 +1,106 @@
package com.example.final_project_app;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import com.example.final_project_app.adpter.IntroductoryAdapter;
import java.util.ArrayList;
import java.util.List;
public class IntroducttoryActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {
private ViewPager mViewPage;
private Button mButton;
private List<View> viewList;
//定义圆点
private ImageView dots[];
private int ids[] = {R.id.iv1,R.id.iv2,R.id.iv3,R.id.iv4};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_introducttory);
//初始化
initView();
//初始化圆点
initDots();
initAdapter();
initStart();
}
// 创建引导页提示圆点
private void initDots() {
dots = new ImageView[viewList.size()];
for (int i = 0; i<ids.length;i++){
dots[i]=findViewById(ids[i]);
}
}
//第4个引导页button按钮的点击事件
private void initStart() {
//序号从0开始计数第四个引导页为序号3
mButton = viewList.get(3).findViewById(R.id.btn_open);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//跳转事件
startActivity(new Intent(IntroducttoryActivity.this, LoginActivity.class));
IntroducttoryActivity.this.finish();
}
});
}
private void initAdapter() {
//创建适配器
IntroductoryAdapter adapter = new IntroductoryAdapter(viewList);
mViewPage.setAdapter(adapter);
mViewPage.setOnPageChangeListener(this);//添加回调
}
private void initView() {
//将创建的四个引导页加入
mViewPage = findViewById(R.id.introductory_viewPager);
viewList = new ArrayList<>();
viewList.add(getView(R.layout.introductory_one));
viewList.add(getView(R.layout.introductory_two));
viewList.add(getView(R.layout.introductory_three));
viewList.add(getView(R.layout.introductory_four));
}
//返回布局
private View getView(int resId) {
return LayoutInflater.from(this).inflate(resId, null);
}
//当页面滑动的时候调用
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
//当页面被选择的时候调用
@Override
public void onPageSelected(int position) {
for (int i = 0;i<ids.length;i++){
//当此页面被选择的时候将小圆点设置成绿色white_dot
//其他小圆点设置成黑点
if (position == i){
dots[i].setImageResource(R.drawable.dot_green);
}else {
dots[i].setImageResource(R.drawable.dot_dark);
}
}
}
// 当滑动状态被改变的时候调用
@Override
public void onPageScrollStateChanged(int state) {
}
}

@ -0,0 +1,82 @@
package com.example.final_project_app;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.final_project_app.db.RegistMysql;
public class LoginActivity extends AppCompatActivity {
EditText name,pwd;
private TextView btnreg;
Button btnlogin;
RegistMysql mysql;
SQLiteDatabase db;
SharedPreferences sp1,sp2;
//声明sharedpreferences sp1,sp2并获取定义键名仅自己应用可访问将最近注册的用户名和密码带值在这个页面的输入框中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
name = this.findViewById(R.id.name); //用户名输入框
pwd = this.findViewById(R.id.pwd); //密码输入框
btnlogin = this.findViewById(R.id.login); //登录按钮
btnreg = this.findViewById(R.id.reg); //注册按钮 // mood_private只能被当前应用访问
sp1 = this.getSharedPreferences("useinfo",this.MODE_PRIVATE);//从系统中获取一个名我userinfo的Sharedpreferences实例用于少量配置信息
sp2 = this.getSharedPreferences("username",this.MODE_PRIVATE);//从系统中获取一个名我username的Sharedpreferences实例用于少量配置信息
name.setText(sp1.getString("usname",null)); //从userinfo的sharedprerences获取键username的字符串不存在就返回null
pwd.setText(sp1.getString("uspwd",null));//从userinfo的sharedprerences获取键uspwd的字符串不存在就返回null
mysql = new RegistMysql(this,"Userinfo",null,1); //建数据库 uerinfo
db = mysql.getReadableDatabase();//获取数据库实例并存储到db中
btnlogin.setOnClickListener(new View.OnClickListener() { //登录事件
@Override
public void onClick(View v) {
String username = name.getText().toString();//从name这个输入框中获取用户输入的用户名信息并转换为字符串
String password = pwd.getText().toString(); //从pwd这个输入框中获取用户输入的密码信息并转换为字符串
//使用db数据的实例去查询名为logins的表中的用户名和密码相同的数据
Cursor cursor = db.query("logins",new String[]{"usname","uspwd"}," usname=? and uspwd=?",new String[]{username,password},null,null,null);
int flag = cursor.getCount(); //查询出来的记录项的条数若没有与输入框中匹配的数据则记录数为0
if(flag!=0){ //若查询出的记录不为0表是有匹配的数据执行跳转
Intent intent = new Intent();
intent.setClass(LoginActivity.this,MainActivity.class); //设置页面跳转
SharedPreferences.Editor editor = sp2.edit();//获取一个sharedprefernces,存储编辑的数据
cursor.moveToFirst(); //将查询结果的游标移动到第一条记录
String loginname = cursor.getString(0);//从查询结果中获取第一条记录的用户名
editor.putString("Loginname",loginname);//使用editor将用户名存储到sharedkpreferences,键名为loinname
editor.commit(); //将用户名存到SharedPreferences中.提交
startActivity(intent);
}
else{//若查询出的记录为0则弹出提示语句
Toast.makeText(LoginActivity.this,"用户名或密码错误!",Toast.LENGTH_LONG).show(); //提示用户信息错误或没有账号
}
}
});
//点击按钮,跳转至注册页
btnreg.setOnClickListener(new View.OnClickListener() { //注册事件
@Override
public void onClick(View v) {
//Intent跳转方法
Intent intent = new Intent();
intent.setClass(LoginActivity.this,RegistActivity.class); //跳转到注册页面
startActivity(intent);
Toast.makeText(LoginActivity.this,"前往注册!", Toast.LENGTH_SHORT).show();
}
});
}
}

@ -0,0 +1,100 @@
package com.example.final_project_app;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager.widget.ViewPager;
import com.example.final_project_app.Fragment.FirstFragment;
import com.example.final_project_app.Fragment.TwoFragment;
import com.example.final_project_app.Fragment.fiveFragment;
import com.example.final_project_app.adpter.MyFragmentPaperAdapter;
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{
private FrameLayout fg_main;
private FragmentManager fm;
private ViewPager vp;
public static final int PAGE_ONE = 0;
public static final int PAGE_TWO = 1;
public static final int PAGE_THREE = 2;
public static final int PAGE_FOUR = 3;
public static final int PAGE_Five = 4;
private MyFragmentPaperAdapter mPaperAdapter;
private TextView tv1;
private TextView tv2;
private TextView tv3;
private TextView tv4;
private TextView tv5;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fg_main = (FrameLayout) findViewById(R.id.fg_main);
vp = (ViewPager) findViewById(R.id.vp);
tv1 = (TextView) findViewById(R.id.tv_one);
tv2 = (TextView) findViewById(R.id.tv_two);
mPaperAdapter = new MyFragmentPaperAdapter(getSupportFragmentManager());
vp.setAdapter(mPaperAdapter);
vp.setCurrentItem(0);
vp.addOnPageChangeListener((ViewPager.OnPageChangeListener) this);
}
//MYClick点击事件
public void MyClick(View view){
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
//创建页面类对象
FirstFragment page1 = new FirstFragment();
TwoFragment page2 = new TwoFragment();
fiveFragment page5 = new fiveFragment();
//点击页面替换
if (view.getId()== R.id.tv_one){
// ft.replace(R.id.fg_main,page1);
vp.setCurrentItem(PAGE_ONE);
}else if (view.getId()==R.id.tv_two){
//ft.replace(R.id.fg_main,page2);
vp.setCurrentItem(PAGE_TWO);
}
ft.commit();
}
@Override
// 是 ViewPager 类的一个回调方法,用于通知页面滑动的状态和位置。
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
//滑动切换判断事件
@Override
public void onPageScrollStateChanged(int state) {
if (state==2){
switch (vp.getCurrentItem()){
case PAGE_ONE:
tv1.setSelected(true);
break;
case PAGE_TWO:
tv2.setSelected(true);
break;
case PAGE_Five:
tv5.setSelected(true);
break;
}
}
}
}

@ -0,0 +1,93 @@
package com.example.final_project_app;
import android.content.ContentValues;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.final_project_app.db.RegistMysql;
public class RegistActivity extends AppCompatActivity {
EditText usename,usepwd,usepwd2;
Button submit;
//声明变量数据库类mysql、SQLiteDatabases db、sharedpreferences sp.
RegistMysql mysql; //数据类RegistMysql
SQLiteDatabase db;
SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_regist);
//获取控件
usename = findViewById(R.id.usename); //用户名编辑框
usepwd = this.findViewById(R.id.usepwd); //设置初始密码编辑框
usepwd2 = this.findViewById(R.id.usepwd2); //二次输入密码编辑框
submit = this.findViewById(R.id.submit); //注册按钮
//创建了一个名为"Userinfo"的SQLite数据库
mysql = new RegistMysql(this,"Userinfo",null,1);
db = mysql.getReadableDatabase(); // 获取一个可读的数据库实例
//从SharedPreferences中获取了一个名为"useinfo"的文件来存储数据。
sp = this.getSharedPreferences("useinfo",this.MODE_PRIVATE);
submit.setOnClickListener(new View.OnClickListener() {
boolean flag = true; //判断用户是否已存在的标志位
@Override
public void onClick(View v) {
String name = usename.getText().toString(); //从输入框中获取用户输入的用户名并转换为字符串
String pwd01 = usepwd.getText().toString(); //密码
String pwd02 = usepwd2.getText().toString(); //二次输入的密码
if(name.equals("")||pwd01 .equals("")||pwd02.equals("")){ //如果用户名、密码1、密码1为空则提示
Toast.makeText(RegistActivity.this, "用户名或密码不能为空!", Toast.LENGTH_LONG).show();
}
else{//如果都不为空,则执行
Cursor cursor = db.query("logins",new String[]{"usname"},null,null,null,null,null);
//使用数据库实例db查询表明为logins表查找username列
while (cursor.moveToNext()){//遍历查询结果每一行
if(cursor.getString(0).equals(name)){ //判断结果与输入框中的用户名是否相同
flag = false;//不相同
break;//跳出循环
}
}
if(flag==true){ //判断用户是否已存在
if (pwd01.equals(pwd02)) { //判断两次输入的密码是否一致,若一致则继续,不一致则提醒密码不一致
ContentValues cv = new ContentValues(); //创建一个新的cv用户存储插入数据库的数据
cv.put("usname",name);//将用户名、密码存入cv
cv.put("uspwd",pwd01);
db.insert("logins",null,cv); //将数据插入logins表中
SharedPreferences.Editor editor = sp.edit(); //获取实例,用于存储数据
editor.putString("usname",name);
editor.putString("uspwd",pwd01);//将用户名和密码存储sharedpreferences中
editor.commit();//提交
Intent intent = new Intent();
intent.setClass(RegistActivity.this,LoginActivity.class); //跳转到登录页面
startActivity(intent);
Toast.makeText(RegistActivity.this, "注册成功!", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(RegistActivity.this, "密码不一致!", Toast.LENGTH_LONG).show(); //提示密码不一致
}
}
else{
Toast.makeText(RegistActivity.this, "用户已存在!", Toast.LENGTH_LONG).show(); //提示密码不一致
}
}
}
});
}
}

@ -0,0 +1,38 @@
package com.example.final_project_app;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class StartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
//初始化
initView();
}
private void initView() {
//使用sharedpreferences存储
SharedPreferences sp=getSharedPreferences("name",MODE_PRIVATE);
boolean is=sp.getBoolean("ok",true);
//判断是否为第一次打开软件
if (is){
SharedPreferences.Editor editor=sp.edit();
editor.putBoolean("ok",false);
editor.apply();
//跳转到引导页
startActivity(new Intent(StartActivity.this,IntroducttoryActivity.class));
finish();
}else {
//直接进入首页
startActivity(new Intent(StartActivity.this,MainActivity.class));
finish();
}
}
}

@ -0,0 +1,40 @@
package com.example.final_project_app.adpter;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import java.util.List;
public class IntroductoryAdapter extends PagerAdapter {
//声明
private List<View> list;
public IntroductoryAdapter(List<View> list) {
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
View view=list.get(position);
container.addView(view);
return view;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView(list.get(position));
}
}

@ -0,0 +1,64 @@
package com.example.final_project_app.adpter;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import com.example.final_project_app.Fragment.FirstFragment;
import com.example.final_project_app.Fragment.TwoFragment;
import com.example.final_project_app.Fragment.fiveFragment;
import com.example.final_project_app.MainActivity;
public class MyFragmentPaperAdapter extends FragmentPagerAdapter {
private final FirstFragment b1;
private final TwoFragment b2;
// private final ThreeFragment b3;
// private final FourFragment b4;
private final fiveFragment b5;
private int PAGE = 2;
public MyFragmentPaperAdapter(@NonNull FragmentManager fm) {
super(fm);
b1 = new FirstFragment();
b2 = new TwoFragment();
b5 = new fiveFragment();
}
@NonNull
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (position){
case MainActivity.PAGE_ONE:
fragment = b1;
break;
case MainActivity.PAGE_TWO:
fragment = b2;
break;
// case MainActivity.PAGE_THREE:
// fragment = b3;
// break;
//
// case MainActivity.PAGE_FOUR:
// fragment = b4;
// break;
case MainActivity.PAGE_Five:
fragment = b5;
break;
}
return fragment;
}
@Override
public int getCount() {
return PAGE;
}
}

@ -0,0 +1,27 @@
package com.example.final_project_app.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
//先键db类RegistMysql继承SQLiteOpenHelper(这里面写数据库语句创建表logins)
public class RegistMysql extends SQLiteOpenHelper {
public RegistMysql(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//创建一个logins表id字段自增并且为主键usename字段、密码字段
String sql = "create table logins(id integer primary key autoincrement,usname text,uspwd text)";
//操作SQLite数据库的类
sqLiteDatabase.execSQL(sql); //执行execSQL方法执行上面这个sql语句
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}

@ -0,0 +1,51 @@
package com.example.final_project_app.sql;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.final_project_app.R;
import java.text.SimpleDateFormat;
import java.util.Date;
public class AddNoteActivity extends AppCompatActivity {
private NoteBook nb;
private EditText et_content,et_title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_note);
et_title= (EditText) findViewById(R.id.et_title);
et_content = (EditText) findViewById(R.id.et_content);
}
public void BtnAdd(View view) {
String title = et_title.getText().toString().trim();
String content = et_content.getText().toString().trim();
NoteData dt = new NoteData(title,content);
dt.setTimee(getSystemCurrentTime());
nb = new NoteBook(this);
long rowId = nb.insert(dt);
if (rowId!=-1) {
Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
this.finish();
}else {
Toast.makeText(this, "添加失败", Toast.LENGTH_SHORT).show();
}
}
private String getSystemCurrentTime() {
SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月dd HH:mm:ss");
Date datetime = new Date();
return sdf.format(datetime);
}
}

@ -0,0 +1,61 @@
package com.example.final_project_app.sql;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.final_project_app.R;
import java.text.SimpleDateFormat;
import java.util.Date;
public class UpdateNoteActivity extends AppCompatActivity {
private EditText et_content,et_title;
private NoteData dt_up;
private NoteBook nb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update_note);
//获取控件
et_title= (EditText) findViewById(R.id.et_title);
et_content = (EditText) findViewById(R.id.et_content);
//数据接收
Intent intent = getIntent();
dt_up = (NoteData) intent.getSerializableExtra("data_sql");
if (dt_up!=null){
et_title.setText(dt_up.getTitle());
et_content.setText(dt_up.getContent());
}
}
public void BtnUpdate(View view) {
String title = et_title.getText().toString().trim();
String content = et_content.getText().toString().trim();
NoteData dt = new NoteData(title,content);
dt.setTimee(getSystemCurrentTime());
nb = new NoteBook(this);
nb.updateByTitle(dt);
int row = nb.updateByTitle(dt);
if (row>0){
Toast.makeText(this, "更新成功", Toast.LENGTH_SHORT).show();
this.finish();
}else {
Toast.makeText(this, "更新失败", Toast.LENGTH_SHORT).show();
}
}
private String getSystemCurrentTime() {
SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月dd HH:mm:ss");
Date datetime = new Date();
return sdf.format(datetime);
}
}

@ -0,0 +1,16 @@
package com.example.final_project_app.ui;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.final_project_app.R;
public class waitActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wait);
}
}

@ -0,0 +1,16 @@
package com.example.final_project_app.ui;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.final_project_app.R;
public class waitActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wait2);
}
}

@ -0,0 +1,16 @@
package com.example.final_project_app.ui;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.final_project_app.R;
public class waitActivity3 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wait3);
}
}

@ -0,0 +1,16 @@
package com.example.final_project_app.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.example.final_project_app.R;
public class waitActivity5 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wait5);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".IntroducttoryActivity">
<!-- 翻页-->
<!--使用viewpager实现引导页面的切换-->
<androidx.viewpager.widget.ViewPager
android:id="@+id/introductory_viewPager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<!--小圆点-->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/ll"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:layout_alignParentBottom="true">
<ImageView
android:layout_width="50dp"
android:layout_height="100dp"
android:id="@+id/iv1"
android:src="@drawable/dot_green"/>
<ImageView
android:id="@+id/iv2"
android:layout_width="50dp"
android:layout_height="100dp"
android:src="@drawable/dot_dark" />
<ImageView
android:layout_width="50dp"
android:layout_height="100dp"
android:id="@+id/iv3"
android:src="@drawable/dot_dark"/>
<ImageView
android:layout_width="50dp"
android:layout_height="100dp"
android:id="@+id/iv4"
android:src="@drawable/dot_dark"/>
</LinearLayout>
</RelativeLayout>

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/logo"
tools:context=".LoginActivity">
<!-- 用户登录界面-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="300dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:gravity="center"
android:textSize="18dp"
android:text="用户名:"/>
<EditText
android:id="@+id/name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="请输入账号:"
android:layout_marginRight="20dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="18dp"
android:layout_weight="0.3"
android:text="密 码:"/>
<EditText
android:id="@+id/pwd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:layout_weight="1"
android:hint="请输入密码:"
android:layout_marginRight="20dp"
/>
</LinearLayout>
<TextView
android:id="@+id/reg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_margin="5dp"
android:gravity="right"
android:text="没有账号?点击注册"
android:textColor="@color/black"/>
<Button
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="登录" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
tools:ignore="MissingClass">
<!-- 主页界面-->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fg_main"
android:layout_above="@id/ll_bottow" >
<androidx.viewpager.widget.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:id="@+id/ll_bottow"
android:background="#EDEBEB"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginLeft="30dp"
android:layout_weight="1">
<TextView
android:layout_width="30dp"
android:layout_height="25dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:onClick="MyClick"
android:id="@+id/tv_one"
android:background="@drawable/page_back1"/>
<TextView
android:layout_width="60dp"
android:layout_height="20dp"
android:text="管理主页"
android:gravity="center"
android:textSize="13sp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="1">
<TextView
android:id="@+id/tv_two"
android:layout_width="27dp"
android:layout_height="31dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:background="@drawable/page_back2"
android:onClick="MyClick" />
<TextView
android:layout_width="60dp"
android:layout_height="20dp"
android:text="实时监视"
android:gravity="center"
android:textSize="13sp" />
</LinearLayout>
<!-- <LinearLayout-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="match_parent"-->
<!-- android:orientation="vertical"-->
<!-- android:layout_weight="1">-->
<!-- <TextView-->
<!-- android:layout_width="30dp"-->
<!-- android:layout_height="25dp"-->
<!-- android:layout_marginLeft="15dp"-->
<!-- android:layout_marginTop="15dp"-->
<!-- android:onClick="MyClick"-->
<!-- android:id="@+id/tv_three"-->
<!-- android:background="@drawable/page_back3"/>-->
<!-- <TextView-->
<!-- android:layout_width="60dp"-->
<!-- android:layout_height="20dp"-->
<!-- android:text="货物备注"-->
<!-- android:gravity="center"-->
<!-- android:textSize="13sp" />-->
<!-- </LinearLayout>-->
<!-- <LinearLayout-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="match_parent"-->
<!-- android:orientation="vertical"-->
<!-- android:layout_weight="1">-->
<!-- <TextView-->
<!-- android:layout_width="30dp"-->
<!-- android:layout_height="25dp"-->
<!-- android:layout_marginLeft="15dp"-->
<!-- android:layout_marginTop="15dp"-->
<!-- android:onClick="MyClick"-->
<!-- android:id="@+id/tv_four"-->
<!-- android:background="@drawable/page_back4"/>-->
<!-- <TextView-->
<!-- android:layout_width="60dp"-->
<!-- android:layout_height="20dp"-->
<!-- android:text="用户中心"-->
<!-- android:gravity="center"-->
<!-- android:textSize="13sp" />-->
<!-- </LinearLayout>-->
</LinearLayout>
</RelativeLayout>

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/qianyan"
tools:context=".RegistActivity">
<!-- 注册登录-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_marginLeft="120dp"
android:layout_marginTop="20sp"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="欢迎使用注册登录:" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="380dp"
android:orientation="vertical">
<!-- 用户名部分 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="用户名:" />
<EditText
android:id="@+id/usename"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" />
<!-- 密码部分 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="密 码:" />
<EditText
android:id="@+id/usepwd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
<!-- 确认密码部分 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="确认密码:" />
<EditText
android:id="@+id/usepwd2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
<Button
android:id="@+id/submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="注册" />
</LinearLayout>
</LinearLayout>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StartActivity">
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.waitActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="待开发页面1"
android:background="#C8B886"
android:textSize="40sp"
android:gravity="center"/>
</LinearLayout>

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.waitActivity2">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="待开发页面2"
android:background="#7AB1CA"
android:textSize="40sp"
android:gravity="center"/>
</LinearLayout>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save