| @@ -0,0 +1,14 @@ | |||
| *.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 | |||
| @@ -0,0 +1,122 @@ | |||
| <component name="ProjectCodeStyleConfiguration"> | |||
| <code_scheme name="Project" version="173"> | |||
| <JetCodeStyleSettings> | |||
| <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> | |||
| </JetCodeStyleSettings> | |||
| <codeStyleSettings language="XML"> | |||
| <indentOptions> | |||
| <option name="CONTINUATION_INDENT_SIZE" value="4" /> | |||
| </indentOptions> | |||
| <arrangement> | |||
| <rules> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>xmlns:android</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>^$</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| </rule> | |||
| </section> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>xmlns:.*</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>^$</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| <order>BY_NAME</order> | |||
| </rule> | |||
| </section> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>.*:id</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| </rule> | |||
| </section> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>.*:name</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| </rule> | |||
| </section> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>name</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>^$</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| </rule> | |||
| </section> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>style</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>^$</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| </rule> | |||
| </section> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>.*</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>^$</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| <order>BY_NAME</order> | |||
| </rule> | |||
| </section> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>.*</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| <order>ANDROID_ATTRIBUTE_ORDER</order> | |||
| </rule> | |||
| </section> | |||
| <section> | |||
| <rule> | |||
| <match> | |||
| <AND> | |||
| <NAME>.*</NAME> | |||
| <XML_ATTRIBUTE /> | |||
| <XML_NAMESPACE>.*</XML_NAMESPACE> | |||
| </AND> | |||
| </match> | |||
| <order>BY_NAME</order> | |||
| </rule> | |||
| </section> | |||
| </rules> | |||
| </arrangement> | |||
| </codeStyleSettings> | |||
| <codeStyleSettings language="kotlin"> | |||
| <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> | |||
| </codeStyleSettings> | |||
| </code_scheme> | |||
| </component> | |||
| @@ -0,0 +1,5 @@ | |||
| <component name="ProjectCodeStyleConfiguration"> | |||
| <state> | |||
| <option name="USE_PER_PROJECT_SETTINGS" value="true" /> | |||
| </state> | |||
| </component> | |||
| @@ -0,0 +1,21 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project version="4"> | |||
| <component name="GradleMigrationSettings" migrationVersion="1" /> | |||
| <component name="GradleSettings"> | |||
| <option name="linkedExternalProjectsSettings"> | |||
| <GradleProjectSettings> | |||
| <option name="delegatedBuild" value="true" /> | |||
| <option name="testRunner" value="PLATFORM" /> | |||
| <option name="distributionType" value="DEFAULT_WRAPPED" /> | |||
| <option name="externalProjectPath" value="$PROJECT_DIR$" /> | |||
| <option name="modules"> | |||
| <set> | |||
| <option value="$PROJECT_DIR$" /> | |||
| <option value="$PROJECT_DIR$/app" /> | |||
| </set> | |||
| </option> | |||
| <option name="resolveModulePerSourceSet" value="false" /> | |||
| </GradleProjectSettings> | |||
| </option> | |||
| </component> | |||
| </project> | |||
| @@ -0,0 +1,7 @@ | |||
| <component name="InspectionProjectProfileManager"> | |||
| <profile version="1.0"> | |||
| <option name="myName" value="Project Default" /> | |||
| <inspection_tool class="AndroidLintLockedOrientationActivity" enabled="false" level="ERROR" enabled_by_default="false" /> | |||
| <inspection_tool class="AndroidLintSourceLockedOrientationActivity" enabled="false" level="ERROR" enabled_by_default="false" /> | |||
| </profile> | |||
| </component> | |||
| @@ -0,0 +1,9 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project version="4"> | |||
| <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | |||
| <output url="file://$PROJECT_DIR$/build/classes" /> | |||
| </component> | |||
| <component name="ProjectType"> | |||
| <option name="id" value="Android" /> | |||
| </component> | |||
| </project> | |||
| @@ -0,0 +1,6 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project version="4"> | |||
| <component name="RenderSettings"> | |||
| <option name="showDecorations" value="true" /> | |||
| </component> | |||
| </project> | |||
| @@ -0,0 +1,12 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <project version="4"> | |||
| <component name="RunConfigurationProducerService"> | |||
| <option name="ignoredProducers"> | |||
| <set> | |||
| <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> | |||
| <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> | |||
| <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> | |||
| </set> | |||
| </option> | |||
| </component> | |||
| </project> | |||
| @@ -0,0 +1,3 @@ | |||
| ### 电子书项目 | |||
| #### 开发工具 AndroidStudio | |||
| @@ -0,0 +1 @@ | |||
| /build | |||
| @@ -0,0 +1,80 @@ | |||
| apply plugin: 'com.android.application' | |||
| apply plugin: 'kotlin-android' | |||
| apply plugin: 'kotlin-android-extensions' | |||
| android { | |||
| compileSdkVersion 29 | |||
| buildToolsVersion "29.0.3" | |||
| defaultConfig { | |||
| applicationId "com.yzx.webebook" | |||
| minSdkVersion 26 | |||
| targetSdkVersion 29 | |||
| versionCode 1 | |||
| versionName "1.0" | |||
| testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | |||
| } | |||
| signingConfigs { | |||
| yzx { | |||
| keyAlias ALIAS_NAME | |||
| keyPassword ALIAS_PWD | |||
| storeFile file(KEY_PATH) | |||
| storePassword KEY_PWD | |||
| v2SigningEnabled false | |||
| } | |||
| } | |||
| buildTypes { | |||
| release { | |||
| minifyEnabled true | |||
| proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |||
| zipAlignEnabled true | |||
| debuggable false | |||
| signingConfig signingConfigs.yzx | |||
| // 移除无用的resource文件 | |||
| shrinkResources true | |||
| } | |||
| debug { | |||
| minifyEnabled false | |||
| proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |||
| debuggable true | |||
| signingConfig signingConfigs.yzx | |||
| // 移除无用的resource文件 | |||
| shrinkResources false | |||
| } | |||
| applicationVariants.all { variant -> | |||
| variant.outputs.all { output -> | |||
| def fileName | |||
| fileName = "Yzx_${variant.versionName}.apk" | |||
| output.outputFileName = fileName | |||
| } | |||
| } | |||
| } | |||
| } | |||
| dependencies { | |||
| implementation fileTree(dir: 'libs', include: ['*.jar']) | |||
| implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" | |||
| implementation "org.jetbrains.anko:anko:$anko_version" | |||
| // 基础依赖包,必须要依赖 | |||
| implementation 'com.gyf.immersionbar:immersionbar:3.0.0' | |||
| // fragment快速实现(可选) | |||
| implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' | |||
| // kotlin扩展(可选) | |||
| implementation 'com.gyf.immersionbar:immersionbar-ktx:3.0.0' | |||
| implementation 'androidx.appcompat:appcompat:1.1.0' | |||
| implementation 'com.google.android.material:material:1.1.0' | |||
| implementation 'androidx.core:core-ktx:1.2.0' | |||
| implementation 'androidx.constraintlayout:constraintlayout:1.1.3' | |||
| testImplementation 'junit:junit:4.12' | |||
| androidTestImplementation 'androidx.test.ext:junit:1.1.0' | |||
| androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' | |||
| implementation files('libs/wenote.jar') | |||
| implementation 'com.github.bumptech.glide:glide:4.11.0' | |||
| implementation 'com.lzy.net:okgo:3.0.4' | |||
| annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' | |||
| } | |||
| @@ -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,24 @@ | |||
| package com.yzx.webebook | |||
| import androidx.test.platform.app.InstrumentationRegistry | |||
| import androidx.test.ext.junit.runners.AndroidJUnit4 | |||
| import org.junit.Test | |||
| import org.junit.runner.RunWith | |||
| import org.junit.Assert.* | |||
| /** | |||
| * Instrumented test, which will execute on an Android device. | |||
| * | |||
| * See [testing documentation](http://d.android.com/tools/testing). | |||
| */ | |||
| @RunWith(AndroidJUnit4::class) | |||
| class ExampleInstrumentedTest { | |||
| @Test | |||
| fun useAppContext() { | |||
| // Context of the app under test. | |||
| val appContext = InstrumentationRegistry.getInstrumentation().targetContext | |||
| assertEquals("com.yzx.webebook", appContext.packageName) | |||
| } | |||
| } | |||
| @@ -0,0 +1,53 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | |||
| xmlns:tools="http://schemas.android.com/tools" | |||
| package="com.yzx.webebook"> | |||
| <uses-permission android:name="android.permission.INTERNET" /> | |||
| <uses-permission android:name="android.permission.READ_PHONE_STATE" /> | |||
| <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | |||
| <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | |||
| <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | |||
| <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> | |||
| <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> | |||
| <uses-permission android:name="android.permission.READ_MEDIA_STORAGE"/> | |||
| <uses-permission android:name="android.permission.WAKE_LOCK" /> | |||
| <application | |||
| android:allowBackup="true" | |||
| android:icon="@mipmap/ic_launcher" | |||
| android:label="@string/app_name" | |||
| android:roundIcon="@mipmap/ic_launcher_round" | |||
| android:supportsRtl="true" | |||
| android:name=".App" | |||
| android:theme="@style/AppTheme"> | |||
| <activity android:name=".MainActivity" | |||
| android:screenOrientation="portrait" | |||
| android:launchMode="singleTask" | |||
| android:configChanges="orientation|keyboard"> | |||
| <intent-filter> | |||
| <action android:name="android.intent.action.MAIN" /> | |||
| <category android:name="android.intent.category.LAUNCHER" /> | |||
| </intent-filter> | |||
| </activity> | |||
| <activity android:name=".activity.WebActivity" | |||
| android:screenOrientation="portrait" | |||
| android:configChanges="orientation|keyboard"/> | |||
| <activity android:name=".activity.BookActivity" | |||
| android:screenOrientation="portrait" | |||
| android:configChanges="orientation|keyboard"/> | |||
| <provider | |||
| android:name=".utils.YzxFileProvider" | |||
| android:authorities="${applicationId}.fileProvider" | |||
| android:exported="false" | |||
| android:grantUriPermissions="true" | |||
| tools:replace="name,authorities,exported,grantUriPermissions"> | |||
| <meta-data | |||
| android:name="android.support.FILE_PROVIDER_PATHS" | |||
| android:resource="@xml/provider_paths" | |||
| tools:replace="name,resource" /> | |||
| </provider> | |||
| </application> | |||
| </manifest> | |||
| @@ -0,0 +1,12 @@ | |||
| package com.yzx.webebook | |||
| import android.app.Application | |||
| import com.lzy.okgo.OkGo | |||
| class App: Application() { | |||
| override fun onCreate() { | |||
| super.onCreate() | |||
| OkGo.getInstance().init(this) | |||
| } | |||
| } | |||
| @@ -0,0 +1,90 @@ | |||
| package com.yzx.webebook | |||
| import android.annotation.SuppressLint | |||
| import android.app.Activity | |||
| import android.content.Intent | |||
| import com.bumptech.glide.Glide | |||
| import com.yzx.webebook.activity.BookActivity | |||
| import com.yzx.webebook.activity.WebActivity | |||
| import com.yzx.webebook.activity.base.BaseActivity | |||
| import com.yzx.webebook.presenter.base.BasePresenter | |||
| import kotlinx.android.synthetic.main.activity_main.* | |||
| import java.io.File | |||
| /** | |||
| * Yun.Lei | |||
| * 2020年5月6日14:49:10 | |||
| */ | |||
| class MainActivity : BaseActivity<BasePresenter<*>>() { | |||
| override val inflateId: Int | |||
| get() = R.layout.activity_main | |||
| override fun initView() { | |||
| btn1.setOnClickListener { | |||
| WebActivity.active(this, "https://m.qbjjyyun.net/") | |||
| } | |||
| btn2.setOnClickListener { | |||
| WebActivity.active(this, "https://m.live.educlouddata.com/") | |||
| } | |||
| btn6.setOnClickListener { | |||
| WebActivity.active(this, "http://192.168.69.200:8098/") | |||
| } | |||
| btn3.setOnClickListener { | |||
| WebActivity.active(this, editText.text.toString()) | |||
| } | |||
| btn4.setOnClickListener { | |||
| BookActivity.active(this,"教育云空间","f04be754f6cb3f6168f582403a514c39","filec","",1,1) | |||
| } | |||
| btn5.setOnClickListener { | |||
| BookActivity.active(this,"教育云空间(无图)","","","",2,2) | |||
| } | |||
| /*OkGo.post<String>("https://fileupload.oa.qbjjyyun.net/edufile/fileUpload") | |||
| .tag(this) | |||
| .params("token","0fc58a8df03c46d3f85b1047c4693cf6") | |||
| .params("user","97244") | |||
| .params("file",file) | |||
| .execute(object : StringCallback(){ | |||
| override fun onError(response: Response<String>?) { | |||
| super.onError(response) | |||
| Log.d("onError",response?.body()) | |||
| } | |||
| override fun onSuccess(response: Response<String>?) { | |||
| val json = response?.body() | |||
| Log.d("onSuccess",response?.body()) | |||
| val jsonObject = JSONObject(json) | |||
| val content = jsonObject.optString("content") | |||
| Log.d("onSuccess,content",content) | |||
| val contentObject = JSONObject(content) | |||
| val key = contentObject.optString("key") | |||
| val identity = contentObject.optString("identity") | |||
| Log.d("onSuccess,identity",identity) | |||
| Log.d("onSuccess,key",key) | |||
| } | |||
| })*/ | |||
| } | |||
| override fun initData() { | |||
| } | |||
| override fun initPresenter(): BasePresenter<*>? = null | |||
| @SuppressLint("SetTextI18n") | |||
| override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { | |||
| super.onActivityResult(requestCode, resultCode, data) | |||
| if(requestCode==BookActivity.REQ_CODE&&resultCode== Activity.RESULT_OK){ | |||
| val mKey = data?.getStringExtra("key") | |||
| val mIdentity = data?.getStringExtra("identity") | |||
| val url = "https://$mIdentity.oa.qbjjyyun.net/edufile/imageView?uniqueKey=$mKey" | |||
| Glide.with(this) | |||
| .load(url) | |||
| .into(testImageView) | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,273 @@ | |||
| package com.yzx.webebook.activity | |||
| import android.annotation.SuppressLint | |||
| import android.app.Activity | |||
| import android.app.AlertDialog | |||
| import android.content.Intent | |||
| import android.net.http.SslError | |||
| import android.os.Build | |||
| import android.text.TextUtils | |||
| import android.util.Log | |||
| import android.view.View | |||
| import android.view.ViewGroup | |||
| import android.webkit.* | |||
| import android.widget.LinearLayout | |||
| import androidx.annotation.RequiresApi | |||
| import com.yzx.webebook.R | |||
| import com.yzx.webebook.activity.base.BaseActivity | |||
| import com.yzx.webebook.presenter.base.BasePresenter | |||
| import kotlinx.android.synthetic.main.activity_web.* | |||
| import org.jetbrains.anko.ctx | |||
| import org.jetbrains.anko.startActivity | |||
| import org.jetbrains.anko.toast | |||
| import org.json.JSONObject | |||
| /** | |||
| * 类名:WebActivity | |||
| * 作者:Yun.Lei | |||
| * 功能: | |||
| * 创建日期:2020年5月6日14:42:16 | |||
| * 修改人: | |||
| * 修改时间: | |||
| * 修改备注: | |||
| */ | |||
| class WebActivity : BaseActivity<BasePresenter<*>>() { | |||
| companion object { | |||
| fun active(act: Activity, link: String) { | |||
| act.startActivity<WebActivity>("link" to link) | |||
| } | |||
| } | |||
| private val webView: WebView by lazy { WebView(this) } | |||
| private var url: String = "" | |||
| override val inflateId: Int | |||
| get() = R.layout.activity_web | |||
| @SuppressLint("SetJavaScriptEnabled") | |||
| override fun initView() { | |||
| url = intent?.getStringExtra("link") ?: "https://m.ykj.qbjjyyun.net/" | |||
| btnBack.setOnClickListener { onBackPressed() } | |||
| btnClose.setOnClickListener { | |||
| finish() | |||
| } | |||
| btnRefresh.setOnClickListener { | |||
| webView.reload() | |||
| } | |||
| webView.layoutParams = LinearLayout.LayoutParams( | |||
| ViewGroup.LayoutParams.MATCH_PARENT, | |||
| ViewGroup.LayoutParams.MATCH_PARENT | |||
| ) | |||
| webLayout.addView(webView) | |||
| webView.addJavascriptInterface(YzxJavascriptInterface(this), "YZX") | |||
| val userAgent = webView.settings.userAgentString | |||
| webView.settings.apply { | |||
| allowFileAccess = true | |||
| javaScriptEnabled = true | |||
| loadWithOverviewMode = true | |||
| useWideViewPort = true | |||
| defaultTextEncodingName = "gb2312" | |||
| setAppCacheEnabled(true) | |||
| mediaPlaybackRequiresUserGesture = false | |||
| javaScriptCanOpenWindowsAutomatically = true | |||
| cacheMode = WebSettings.LOAD_DEFAULT | |||
| databaseEnabled = true | |||
| setRenderPriority(WebSettings.RenderPriority.HIGH) | |||
| blockNetworkImage = false | |||
| domStorageEnabled = true | |||
| setAppCacheMaxSize(1024 * 1024 * 8) | |||
| setAppCachePath(ctx.cacheDir.absolutePath) | |||
| if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { | |||
| mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW | |||
| } | |||
| userAgentString = "$userAgent app/ebook" | |||
| } | |||
| webView.webViewClient = object : WebViewClient() { | |||
| @RequiresApi(Build.VERSION_CODES.LOLLIPOP) | |||
| override fun shouldOverrideUrlLoading( | |||
| view: WebView?, | |||
| request: WebResourceRequest? | |||
| ): Boolean { | |||
| view?.loadUrl(request?.url.toString()) | |||
| return super.shouldOverrideUrlLoading(view, request) | |||
| } | |||
| // 即使加载失败后,webview执行完onReceivedError()方法也会执行这个方法 | |||
| override fun onPageFinished(view: WebView, url: String) { | |||
| super.onPageFinished(view, url) | |||
| webView.settings.blockNetworkImage = false | |||
| if (!TextUtils.isEmpty(view.title)) { | |||
| titleTv.text = view.title//webView获取到网页title | |||
| } | |||
| } | |||
| override fun onReceivedSslError( | |||
| view: WebView, | |||
| handler: SslErrorHandler, | |||
| error: SslError | |||
| ) { | |||
| handler.proceed() | |||
| } | |||
| } | |||
| webView.webChromeClient = object : WebChromeClient() { | |||
| override fun onProgressChanged(view: WebView?, newProgress: Int) { | |||
| super.onProgressChanged(view, newProgress) | |||
| progressbar.progress = newProgress | |||
| if (newProgress >= 100) { | |||
| view?.post { | |||
| progressbar.visibility = View.GONE | |||
| if (view.canGoBack()) { | |||
| btnClose.visibility = View.VISIBLE | |||
| //btnBack.visibility = View.VISIBLE | |||
| } else { | |||
| btnClose.visibility = View.GONE | |||
| //btnBack.visibility = View.GONE | |||
| } | |||
| } | |||
| } else { | |||
| if (progressbar.visibility == View.GONE) { | |||
| view?.post { progressbar.visibility = View.VISIBLE } | |||
| } | |||
| } | |||
| } | |||
| override fun onJsAlert( | |||
| view: WebView?, | |||
| url: String?, | |||
| message: String?, | |||
| result: JsResult? | |||
| ): Boolean { | |||
| val b = AlertDialog.Builder(this@WebActivity) | |||
| b.setTitle(message) | |||
| b.setPositiveButton("确定") { _, _ -> | |||
| result?.confirm() | |||
| } | |||
| return true | |||
| } | |||
| } | |||
| WebView.setWebContentsDebuggingEnabled(true) //将 WebViews 配置为可调试状态 | |||
| webView.setLayerType(View.LAYER_TYPE_HARDWARE, null) | |||
| } | |||
| override fun initData() { | |||
| webView.loadUrl(url) | |||
| } | |||
| override fun initPresenter(): BasePresenter<*>? { | |||
| return null | |||
| } | |||
| override fun onResume() { | |||
| super.onResume() | |||
| webView.onResume() | |||
| } | |||
| override fun onPause() { | |||
| super.onPause() | |||
| webView.onPause() | |||
| } | |||
| override fun onBackPressed() { | |||
| if (webView.canGoBack()) { | |||
| webView.goBack() | |||
| } else { | |||
| super.onBackPressed() | |||
| } | |||
| } | |||
| override fun onDestroy() { | |||
| super.onDestroy() | |||
| webView.apply { | |||
| webViewClient = null | |||
| webChromeClient = null | |||
| (parent as ViewGroup).removeView(webView) | |||
| removeAllViews() | |||
| destroy() | |||
| } | |||
| } | |||
| /** | |||
| * 调用js方法 | |||
| */ | |||
| private fun evaluateJavascript(funName: String, data: String) { | |||
| webView.post { | |||
| webView.evaluateJavascript("javascript:$funName('$data')") { | |||
| Log.d("javascriptCallBack:", it) | |||
| //toast(it) | |||
| } | |||
| } | |||
| } | |||
| @SuppressLint("SetTextI18n") | |||
| override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { | |||
| super.onActivityResult(requestCode, resultCode, data) | |||
| if (requestCode == BookActivity.REQ_CODE && resultCode == Activity.RESULT_OK) { | |||
| val mKey = data?.getStringExtra("key") ?: "" | |||
| val mIdentity = data?.getStringExtra("identity") ?: "" | |||
| val obj = JSONObject() | |||
| obj.put("key", mKey) | |||
| obj.put("identity", mIdentity) | |||
| obj.put("name", data?.getStringExtra("name") ?: "") | |||
| obj.put("index", data?.getIntExtra("index",0)) | |||
| obj.put("type", data?.getIntExtra("type",1)) | |||
| evaluateJavascript("onImageUploadSuccess", obj.toString()) | |||
| } | |||
| } | |||
| } | |||
| class YzxJavascriptInterface(var ctx: Activity) { | |||
| /** | |||
| * 获取电子书的clientId | |||
| */ | |||
| @JavascriptInterface | |||
| fun getClientId(): Int = 601 | |||
| /** | |||
| * 跳转到电子书页面 | |||
| */ | |||
| @JavascriptInterface | |||
| fun bookPage( | |||
| title: String, | |||
| identity: String, | |||
| key: String, | |||
| name: String, | |||
| index: Int, | |||
| type: Int | |||
| ) { | |||
| BookActivity.active(ctx, title, key, identity,name,index,type) | |||
| } | |||
| /** | |||
| * 提示 | |||
| */ | |||
| @JavascriptInterface | |||
| fun toast(msg: String) { | |||
| ctx.toast("android:$msg") | |||
| } | |||
| } | |||
| @@ -0,0 +1,73 @@ | |||
| package com.yzx.webebook.activity.base | |||
| import android.os.Bundle | |||
| import androidx.appcompat.app.AppCompatActivity | |||
| import com.gyf.immersionbar.ktx.immersionBar | |||
| import com.yzx.webebook.R | |||
| import com.yzx.webebook.presenter.base.BasePresenter | |||
| /** | |||
| * 类名:BaseActivity | |||
| * 作者:Yun.Lei | |||
| * 功能: | |||
| * 创建日期:2020年5月6日14:27:04 | |||
| * 修改人: | |||
| * 修改时间: | |||
| * 修改备注: | |||
| */ | |||
| abstract class BaseActivity<out P : BasePresenter<*>> : AppCompatActivity() { | |||
| /** | |||
| * 当前页面需要加载的layoutId,等价setContentView | |||
| */ | |||
| abstract val inflateId: Int | |||
| /** | |||
| * 初始化视图操作在这里执行,执行时机为onCreate之后 | |||
| */ | |||
| abstract fun initView(): Unit | |||
| /** | |||
| * 数据初始化在这里执行,执行时机为initView之后 | |||
| */ | |||
| abstract fun initData(): Unit | |||
| //kotlin 懒加载,在第一次使用Presenter时初始化,这种设计是针对一个View只针对一个Presenter。 | |||
| //多个Presenter的情况此处不应该使用泛型 | |||
| protected val mPresenter: P? by lazy { initPresenter() } | |||
| abstract fun initPresenter(): P? | |||
| override fun onCreate(savedInstanceState: Bundle?) { | |||
| super.onCreate(savedInstanceState) | |||
| setContentView(inflateId) | |||
| initView() | |||
| initData() | |||
| setStatusBar() | |||
| } | |||
| open fun setStatusBar() { | |||
| immersionBar { | |||
| statusBarColor(R.color.white) | |||
| fitsSystemWindows(true) | |||
| statusBarDarkFont(true, 0.2f) | |||
| keyboardEnable(true) | |||
| init() | |||
| } | |||
| } | |||
| override fun onBackPressed() { | |||
| super.onBackPressed() | |||
| } | |||
| override fun onDestroy() { | |||
| super.onDestroy() | |||
| } | |||
| } | |||
| @@ -0,0 +1,13 @@ | |||
| package com.yzx.webebook.model | |||
| class UploadBean { | |||
| var code:Int = 0 | |||
| var msg:String = "" | |||
| var content:UploadContent = UploadContent() | |||
| } | |||
| class UploadContent{ | |||
| var identity:String = "" | |||
| var key:String = "" | |||
| var file_size:String = "" | |||
| } | |||
| @@ -0,0 +1,19 @@ | |||
| package com.yzx.webebook.presenter.base | |||
| /** | |||
| * 类名:BasePresenter | |||
| * 作者:Yun.Lei | |||
| * 功能: | |||
| * 创建日期:2018-07-13 10:40 | |||
| * 修改人: | |||
| * 修改时间: | |||
| * 修改备注: | |||
| */ | |||
| abstract class BasePresenter<T : IView>(view: T) { | |||
| protected var mView: T? = view | |||
| fun onDestroy() { | |||
| mView = null | |||
| } | |||
| } | |||
| @@ -0,0 +1,12 @@ | |||
| package com.yzx.webebook.presenter.base | |||
| /** | |||
| * 类名:IView | |||
| * 作者:Yun.Lei | |||
| * 功能: | |||
| * 创建日期:2018-07-13 10:39 | |||
| * 修改人: | |||
| * 修改时间: | |||
| * 修改备注: | |||
| */ | |||
| interface IView | |||
| @@ -0,0 +1,2 @@ | |||
| package com.yzx.webebook.utils | |||
| @@ -0,0 +1,15 @@ | |||
| package com.yzx.webebook.utils | |||
| import androidx.core.content.FileProvider | |||
| /** | |||
| * 类名:YzxFileProvider | |||
| * 作者:Yun.Lei | |||
| * 功能: | |||
| * 创建日期:2020年5月6日14:09:27 | |||
| * 修改人: | |||
| * 修改时间: | |||
| * 修改备注: | |||
| */ | |||
| class YzxFileProvider: FileProvider() | |||
| @@ -0,0 +1,22 @@ | |||
| package com.yzx.webebook.widget; | |||
| import android.content.Context; | |||
| import android.graphics.drawable.Drawable; | |||
| import android.util.AttributeSet; | |||
| import com.wetao.note.WeNoteView; | |||
| public class EBookView extends WeNoteView { | |||
| public EBookView(Context context) { | |||
| super(context); | |||
| } | |||
| public EBookView(Context context, AttributeSet attributeSet) { | |||
| super(context, attributeSet); | |||
| } | |||
| public void updateBackground(Drawable drawable){ | |||
| } | |||
| } | |||
| @@ -0,0 +1,32 @@ | |||
| package com.yzx.webebook.widget | |||
| import android.content.Context | |||
| import android.text.TextUtils | |||
| import android.util.AttributeSet | |||
| import androidx.appcompat.widget.AppCompatTextView | |||
| /** | |||
| * 类名:ScrollTextView | |||
| * 作者:Yun.Lei | |||
| * 功能: | |||
| * 创建日期:2020年5月6日14:29:39 | |||
| * 修改人: | |||
| * 修改时间: | |||
| * 修改备注: | |||
| */ | |||
| class ScrollTextView : AppCompatTextView { | |||
| constructor(context: Context?) : super(context) | |||
| constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) | |||
| constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) | |||
| init { | |||
| ellipsize = TextUtils.TruncateAt.MARQUEE | |||
| marqueeRepeatLimit = -1 | |||
| isSingleLine = true | |||
| } | |||
| override fun isFocused(): Boolean { | |||
| return true | |||
| } | |||
| } | |||
| @@ -0,0 +1 @@ | |||
| /system/lib/libpaintworker.so | |||
| @@ -0,0 +1,34 @@ | |||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | |||
| xmlns:aapt="http://schemas.android.com/aapt" | |||
| android:width="108dp" | |||
| android:height="108dp" | |||
| android:viewportHeight="108" | |||
| android:viewportWidth="108"> | |||
| <path | |||
| android:fillType="evenOdd" | |||
| android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z" | |||
| android:strokeColor="#00000000" | |||
| android:strokeWidth="1"> | |||
| <aapt:attr name="android:fillColor"> | |||
| <gradient | |||
| android:endX="78.5885" | |||
| android:endY="90.9159" | |||
| android:startX="48.7653" | |||
| android:startY="61.0927" | |||
| 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="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z" | |||
| android:strokeColor="#00000000" | |||
| android:strokeWidth="1" /> | |||
| </vector> | |||
| @@ -0,0 +1,29 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> | |||
| <item android:id="@android:id/background"> | |||
| <shape> | |||
| <corners android:radius="2dip" /> | |||
| <solid android:color="@color/white" /> | |||
| </shape> | |||
| </item> | |||
| <item android:id="@android:id/secondaryProgress"> | |||
| <clip> | |||
| <shape> | |||
| <corners android:radius="2dip" /> | |||
| <solid android:color="@color/white" /> | |||
| </shape> | |||
| </clip> | |||
| </item> | |||
| <item android:id="@android:id/progress"> | |||
| <clip> | |||
| <shape> | |||
| <corners android:radius="2dip" /> | |||
| <solid android:color="@color/black" /> | |||
| </shape> | |||
| </clip> | |||
| </item> | |||
| </layer-list> | |||
| @@ -0,0 +1,5 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <selector xmlns:android="http://schemas.android.com/apk/res/android"> | |||
| <item android:drawable="@android:color/transparent" android:state_selected="true" /> | |||
| <item android:drawable="@android:color/transparent" /> | |||
| </selector> | |||
| @@ -0,0 +1,74 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <vector | |||
| android:height="108dp" | |||
| android:width="108dp" | |||
| android:viewportHeight="108" | |||
| android:viewportWidth="108" | |||
| xmlns:android="http://schemas.android.com/apk/res/android"> | |||
| <path android:fillColor="#008577" | |||
| android:pathData="M0,0h108v108h-108z"/> | |||
| <path android:fillColor="#00000000" android:pathData="M9,0L9,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M19,0L19,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M29,0L29,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M39,0L39,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M49,0L49,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M59,0L59,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M69,0L69,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M79,0L79,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M89,0L89,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M99,0L99,108" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,9L108,9" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,19L108,19" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,29L108,29" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,39L108,39" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,49L108,49" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,59L108,59" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,69L108,69" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,79L108,79" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,89L108,89" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M0,99L108,99" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M19,29L89,29" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M19,39L89,39" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M19,49L89,49" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M19,59L89,59" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M19,69L89,69" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M19,79L89,79" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M29,19L29,89" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M39,19L39,89" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M49,19L49,89" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M59,19L59,89" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M69,19L69,89" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| <path android:fillColor="#00000000" android:pathData="M79,19L79,89" | |||
| android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> | |||
| </vector> | |||
| @@ -0,0 +1,29 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> | |||
| <item android:id="@android:id/background"> | |||
| <shape> | |||
| <corners android:radius="2dip" /> | |||
| <solid android:color="@color/white" /> | |||
| </shape> | |||
| </item> | |||
| <item android:id="@android:id/secondaryProgress"> | |||
| <clip> | |||
| <shape> | |||
| <corners android:radius="2dip" /> | |||
| <solid android:color="@color/white" /> | |||
| </shape> | |||
| </clip> | |||
| </item> | |||
| <item android:id="@android:id/progress"> | |||
| <clip> | |||
| <shape> | |||
| <corners android:radius="2dip" /> | |||
| <solid android:color="@color/black" /> | |||
| </shape> | |||
| </clip> | |||
| </item> | |||
| </layer-list> | |||
| @@ -0,0 +1,235 @@ | |||
| <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="match_parent" | |||
| android:background="#ffffffff" | |||
| android:orientation="vertical"> | |||
| <com.google.android.material.appbar.AppBarLayout | |||
| android:layout_width="match_parent" | |||
| android:layout_height="@dimen/title_height" | |||
| android:background="@color/white"> | |||
| <RelativeLayout | |||
| android:layout_width="match_parent" | |||
| android:layout_height="match_parent"> | |||
| <ImageView | |||
| android:id="@+id/btnBack" | |||
| android:layout_width="@dimen/title_height" | |||
| android:layout_height="@dimen/title_height" | |||
| android:background="?attr/selectableItemBackground" | |||
| android:scaleType="centerInside" | |||
| android:src="@mipmap/ic_back_def" /> | |||
| <ImageView | |||
| android:id="@+id/btnClose" | |||
| android:layout_width="@dimen/title_height" | |||
| android:layout_height="@dimen/title_height" | |||
| android:layout_toEndOf="@+id/btnBack" | |||
| android:background="?attr/selectableItemBackground" | |||
| android:scaleType="centerInside" | |||
| android:src="@mipmap/ic_close" | |||
| android:visibility="gone" /> | |||
| <androidx.appcompat.widget.AppCompatTextView | |||
| android:id="@+id/titleTv" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:layout_centerInParent="true" | |||
| android:layout_marginStart="96dp" | |||
| android:layout_marginEnd="96dp" | |||
| android:gravity="center" | |||
| android:textColor="@color/black" | |||
| android:textStyle="bold" | |||
| android:textSize="@dimen/title_text_size" /> | |||
| <androidx.appcompat.widget.AppCompatButton | |||
| android:id="@+id/save" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:layout_alignParentEnd="true" | |||
| android:layout_centerVertical="true" | |||
| android:background="@drawable/btn_select" | |||
| android:paddingHorizontal="15dp" | |||
| android:textSize="@dimen/title_text_size" | |||
| android:textStyle="bold" | |||
| android:text="保存" /> | |||
| <LinearLayout | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:layout_alignParentEnd="true" | |||
| android:layout_centerVertical="true" | |||
| android:layout_marginEnd="15dp" | |||
| android:orientation="horizontal" | |||
| android:visibility="gone"> | |||
| <androidx.appcompat.widget.AppCompatTextView | |||
| android:id="@+id/btnPre" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:background="@mipmap/ic_left" /> | |||
| <androidx.appcompat.widget.AppCompatTextView | |||
| android:id="@+id/tvIndex" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="1" | |||
| android:textColor="#2c2c2c" /> | |||
| <androidx.appcompat.widget.AppCompatTextView | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="/" | |||
| android:textColor="#2c2c2c" /> | |||
| <androidx.appcompat.widget.AppCompatTextView | |||
| android:id="@+id/tvTotal" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="2" | |||
| android:textColor="#2c2c2c" /> | |||
| <androidx.appcompat.widget.AppCompatTextView | |||
| android:id="@+id/btnNext" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:background="@mipmap/ic_right" /> | |||
| </LinearLayout> | |||
| <ProgressBar | |||
| android:id="@+id/progressbar" | |||
| style="?android:attr/progressBarStyleHorizontal" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="2dp" | |||
| android:layout_alignParentBottom="true" | |||
| android:max="100" | |||
| android:progress="0" | |||
| android:progressDrawable="@drawable/progress_horizontal" | |||
| android:visibility="visible" /> | |||
| </RelativeLayout> | |||
| </com.google.android.material.appbar.AppBarLayout> | |||
| <LinearLayout | |||
| android:id="@+id/bottom_view" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="wrap_content" | |||
| android:layout_alignParentTop="true" | |||
| android:orientation="horizontal" | |||
| android:paddingTop="4dp"> | |||
| <Button | |||
| android:id="@+id/delete" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="删除" | |||
| android:visibility="gone" /> | |||
| <Button | |||
| android:id="@+id/init" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="背景0" /> | |||
| <Button | |||
| android:id="@+id/clear" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="清除" /> | |||
| <Button | |||
| android:id="@+id/redo" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="ReDo" /> | |||
| <Button | |||
| android:id="@+id/undo" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="UnDo" /> | |||
| <Button | |||
| android:id="@+id/pen_width_sub" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="-宽度3" /> | |||
| <Button | |||
| android:id="@+id/pen_width" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="+宽度3" /> | |||
| <Button | |||
| android:id="@+id/eraser_width" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="橡皮宽15" /> | |||
| <CheckBox | |||
| android:id="@+id/strokes" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="笔锋" /> | |||
| <CheckBox | |||
| android:id="@+id/eraser" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="橡皮擦" /> | |||
| <Button | |||
| android:id="@+id/cancel" | |||
| android:layout_width="0dp" | |||
| android:layout_height="wrap_content" | |||
| android:layout_weight="1" | |||
| android:background="@drawable/btn_select" | |||
| android:text="退出" | |||
| android:visibility="gone" /> | |||
| </LinearLayout> | |||
| <TextView | |||
| android:layout_width="match_parent" | |||
| android:layout_height="1dp" | |||
| android:background="#ff000000" /> | |||
| <!-- <FrameLayout | |||
| android:id="@+id/tablet_view" | |||
| android:layout_width="fill_parent" | |||
| android:layout_height="match_parent" > | |||
| </FrameLayout> --> | |||
| <com.wetao.note.WeNoteView | |||
| android:id="@+id/note_view" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="match_parent" | |||
| android:layout_above="@+id/bottom_view" | |||
| android:background="#ffffffff" /> | |||
| <!-- <com.wetao.note.WeNoteView | |||
| android:id="@+id/note_view" | |||
| android:layout_width="1150px" | |||
| android:layout_height="1560px" | |||
| android:layout_marginLeft="103px" | |||
| android:layout_marginRight="150px" | |||
| android:layout_above="@+id/bottom_view" | |||
| android:background="#ffffffff" /> --> | |||
| </LinearLayout> | |||
| @@ -0,0 +1,98 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <androidx.appcompat.widget.LinearLayoutCompat | |||
| xmlns:android="http://schemas.android.com/apk/res/android" | |||
| xmlns:tools="http://schemas.android.com/tools" | |||
| xmlns:app="http://schemas.android.com/apk/res-auto" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="match_parent" | |||
| tools:context=".MainActivity" | |||
| android:gravity="center_horizontal" | |||
| android:orientation="vertical"> | |||
| <com.google.android.material.appbar.AppBarLayout | |||
| android:layout_width="match_parent" | |||
| android:layout_height="@dimen/title_height" | |||
| android:background="@color/white"> | |||
| <RelativeLayout | |||
| android:layout_width="match_parent" | |||
| android:layout_height="match_parent"> | |||
| <androidx.appcompat.widget.AppCompatTextView | |||
| android:id="@+id/titleTv" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:layout_centerInParent="true" | |||
| android:layout_marginStart="96dp" | |||
| android:layout_marginEnd="96dp" | |||
| android:gravity="center" | |||
| android:textColor="@color/black" | |||
| android:textSize="@dimen/title_text_size" | |||
| android:text="云智学电子书"/> | |||
| </RelativeLayout> | |||
| </com.google.android.material.appbar.AppBarLayout> | |||
| <androidx.appcompat.widget.AppCompatButton | |||
| android:id="@+id/btn1" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="家校线上" | |||
| android:layout_marginTop="@dimen/d_20"/> | |||
| <androidx.appcompat.widget.AppCompatButton | |||
| android:id="@+id/btn2" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="家校Live" | |||
| android:layout_marginTop="@dimen/d_20"/> | |||
| <androidx.appcompat.widget.AppCompatButton | |||
| android:id="@+id/btn6" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="家校本地" | |||
| android:layout_marginTop="@dimen/d_20"/> | |||
| <androidx.appcompat.widget.AppCompatEditText | |||
| android:id="@+id/editText" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="wrap_content" | |||
| android:layout_marginTop="@dimen/d_20" | |||
| android:hint="输入网址" | |||
| android:paddingHorizontal="15dp" | |||
| android:text="http://192.168.69.200:8098/"/> | |||
| <androidx.appcompat.widget.AppCompatButton | |||
| android:id="@+id/btn3" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="前往" | |||
| android:layout_marginTop="@dimen/d_20"/> | |||
| <androidx.appcompat.widget.AppCompatButton | |||
| android:id="@+id/btn4" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="电子书页面" | |||
| android:visibility="visible" | |||
| android:layout_marginTop="@dimen/d_20"/> | |||
| <androidx.appcompat.widget.AppCompatButton | |||
| android:id="@+id/btn5" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="电子书页面(不带背景)" | |||
| android:visibility="visible" | |||
| android:layout_marginTop="@dimen/d_20"/> | |||
| <androidx.appcompat.widget.AppCompatImageView | |||
| android:id="@+id/testImageView" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="wrap_content" | |||
| android:layout_marginTop="@dimen/d_20" | |||
| android:adjustViewBounds="true" | |||
| android:visibility="visible" | |||
| android:scaleType="fitXY"/> | |||
| </androidx.appcompat.widget.LinearLayoutCompat> | |||
| @@ -0,0 +1,76 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
| xmlns:tools="http://schemas.android.com/tools" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="match_parent" | |||
| android:orientation="vertical" | |||
| tools:context=".activity.WebActivity"> | |||
| <com.google.android.material.appbar.AppBarLayout | |||
| android:layout_width="match_parent" | |||
| android:layout_height="@dimen/title_height" | |||
| android:background="@color/white"> | |||
| <RelativeLayout | |||
| android:layout_width="match_parent" | |||
| android:layout_height="match_parent"> | |||
| <ImageView | |||
| android:id="@+id/btnBack" | |||
| android:layout_width="@dimen/title_height" | |||
| android:layout_height="@dimen/title_height" | |||
| android:scaleType="centerInside" | |||
| android:src="@mipmap/ic_back_def" | |||
| android:visibility="visible"/> | |||
| <ImageView | |||
| android:id="@+id/btnClose" | |||
| android:layout_width="@dimen/title_height" | |||
| android:layout_height="@dimen/title_height" | |||
| android:layout_toEndOf="@+id/btnBack" | |||
| android:scaleType="centerInside" | |||
| android:src="@mipmap/ic_close" | |||
| android:visibility="gone" /> | |||
| <ImageView | |||
| android:id="@+id/btnRefresh" | |||
| android:layout_width="@dimen/title_height" | |||
| android:layout_height="@dimen/title_height" | |||
| android:layout_toEndOf="@+id/btnClose" | |||
| android:scaleType="centerInside" | |||
| android:src="@mipmap/ic_refresh"/> | |||
| <androidx.appcompat.widget.AppCompatTextView | |||
| android:id="@+id/titleTv" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:layout_centerInParent="true" | |||
| android:layout_marginStart="360px" | |||
| android:layout_marginEnd="360px" | |||
| android:gravity="center" | |||
| android:textColor="@color/black" | |||
| android:textStyle="bold" | |||
| android:lines="1" | |||
| android:singleLine="true" | |||
| android:ellipsize="end" | |||
| android:textSize="@dimen/title_text_size" /> | |||
| <ProgressBar | |||
| android:id="@+id/progressbar" | |||
| style="?android:attr/progressBarStyleHorizontal" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="2dp" | |||
| android:layout_alignParentBottom="true" | |||
| android:max="100" | |||
| android:progress="0" | |||
| android:progressDrawable="@drawable/progress_horizontal" | |||
| android:visibility="visible" /> | |||
| </RelativeLayout> | |||
| </com.google.android.material.appbar.AppBarLayout> | |||
| <LinearLayout | |||
| android:id="@+id/webLayout" | |||
| android:layout_width="match_parent" | |||
| android:layout_height="match_parent" | |||
| android:orientation="vertical" /> | |||
| </LinearLayout> | |||
| @@ -0,0 +1,5 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | |||
| <background android:drawable="@drawable/ic_launcher_background"/> | |||
| <foreground android:drawable="@drawable/ic_launcher_foreground"/> | |||
| </adaptive-icon> | |||
| @@ -0,0 +1,5 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | |||
| <background android:drawable="@drawable/ic_launcher_background"/> | |||
| <foreground android:drawable="@drawable/ic_launcher_foreground"/> | |||
| </adaptive-icon> | |||
| @@ -0,0 +1,25 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <resources> | |||
| <color name="colorPrimary">#008577</color> | |||
| <color name="colorPrimaryDark">#00574B</color> | |||
| <color name="colorAccent">#D81B60</color> | |||
| <color name="white">#FFFFFF</color> | |||
| <color name="black">#000000</color> | |||
| <color name="colorBlack10">#19000000</color> | |||
| <color name="colorBlack20">#33000000</color> | |||
| <color name="colorBlack40">#66000000</color> | |||
| <color name="colorBlack60">#99000000</color> | |||
| <color name="colorBlack80">#cc000000</color> | |||
| <color name="black_11">#11333333</color> | |||
| <color name="black_1">#222222</color> | |||
| <color name="gray">#666666</color> | |||
| <color name="gray_1">#999999</color> | |||
| <color name="gray_2">#cccccc</color> | |||
| <color name="line_color">#D8D8D8</color> | |||
| <color name="backgroundColor">#f8f8f8</color> | |||
| <color name="red">#ff4444</color> | |||
| <color name="green">#54b3b3</color> | |||
| <color name="blue">#4d92dc</color> | |||
| <color name="orange">#ff8635</color> | |||
| <color name="transparent">@android:color/transparent</color> | |||
| </resources> | |||
| @@ -0,0 +1,42 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <resources> | |||
| <dimen name="title_height">120px</dimen> | |||
| <dimen name="title_text_size">40px</dimen> | |||
| <dimen name="sp12">12sp</dimen> | |||
| <dimen name="sp14">14sp</dimen> | |||
| <dimen name="sp16">16sp</dimen> | |||
| <dimen name="sp18">18sp</dimen> | |||
| <dimen name="sp20">20sp</dimen> | |||
| <dimen name="p_1">1px</dimen> | |||
| <dimen name="d_1">1dp</dimen> | |||
| <dimen name="d_2">2dp</dimen> | |||
| <dimen name="d_3">3dp</dimen> | |||
| <dimen name="d_4">4dp</dimen> | |||
| <dimen name="d_5">5dp</dimen> | |||
| <dimen name="d_6">6dp</dimen> | |||
| <dimen name="d_7">7dp</dimen> | |||
| <dimen name="d_8">8dp</dimen> | |||
| <dimen name="d_9">9dp</dimen> | |||
| <dimen name="d_10">10dp</dimen> | |||
| <dimen name="d_11">11dp</dimen> | |||
| <dimen name="d_12">12dp</dimen> | |||
| <dimen name="d_13">13dp</dimen> | |||
| <dimen name="d_14">14dp</dimen> | |||
| <dimen name="d_15">15dp</dimen> | |||
| <dimen name="d_16">16dp</dimen> | |||
| <dimen name="d_17">17dp</dimen> | |||
| <dimen name="d_18">18dp</dimen> | |||
| <dimen name="d_19">19dp</dimen> | |||
| <dimen name="d_20">20dp</dimen> | |||
| <dimen name="d_21">21dp</dimen> | |||
| <dimen name="d_22">22dp</dimen> | |||
| <dimen name="d_23">23dp</dimen> | |||
| <dimen name="d_24">24dp</dimen> | |||
| <dimen name="d_25">25dp</dimen> | |||
| <dimen name="d_26">26dp</dimen> | |||
| <dimen name="d_27">27dp</dimen> | |||
| <dimen name="d_28">28dp</dimen> | |||
| <dimen name="d_29">29dp</dimen> | |||
| <dimen name="d_30">30dp</dimen> | |||
| </resources> | |||
| @@ -0,0 +1,3 @@ | |||
| <resources> | |||
| <string name="app_name">云智学</string> | |||
| </resources> | |||
| @@ -0,0 +1,12 @@ | |||
| <resources> | |||
| <!-- Base application theme. --> | |||
| <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> | |||
| <!-- Customize your theme here. --> | |||
| <item name="colorPrimary">@color/colorPrimary</item> | |||
| <item name="colorPrimaryDark">@color/colorPrimaryDark</item> | |||
| <item name="colorAccent">@color/colorAccent</item> | |||
| <item name="android:windowBackground">@color/backgroundColor</item> | |||
| </style> | |||
| </resources> | |||
| @@ -0,0 +1,8 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <resources> | |||
| <paths> | |||
| <external-path path="" name="download"/> | |||
| </paths> | |||
| </resources> | |||
| @@ -0,0 +1,17 @@ | |||
| package com.yzx.webebook | |||
| import org.junit.Test | |||
| import org.junit.Assert.* | |||
| /** | |||
| * Example local unit test, which will execute on the development machine (host). | |||
| * | |||
| * See [testing documentation](http://d.android.com/tools/testing). | |||
| */ | |||
| class ExampleUnitTest { | |||
| @Test | |||
| fun addition_isCorrect() { | |||
| assertEquals(4, 2 + 2) | |||
| } | |||
| } | |||
| @@ -0,0 +1,29 @@ | |||
| // Top-level build file where you can add configuration options common to all sub-projects/modules. | |||
| buildscript { | |||
| ext.kotlin_version = '1.3.71' | |||
| ext.anko_version='0.10.8' | |||
| repositories { | |||
| google() | |||
| jcenter() | |||
| } | |||
| dependencies { | |||
| classpath 'com.android.tools.build:gradle:3.6.3' | |||
| classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" | |||
| // NOTE: Do not place your application dependencies here; they belong | |||
| // in the individual module build.gradle files | |||
| } | |||
| } | |||
| allprojects { | |||
| repositories { | |||
| google() | |||
| jcenter() | |||
| } | |||
| } | |||
| task clean(type: Delete) { | |||
| delete rootProject.buildDir | |||
| } | |||
| @@ -0,0 +1,32 @@ | |||
| # Project-wide Gradle settings. | |||
| # IDE (e.g. Android Studio) users: | |||
| # Gradle settings configured through the IDE *will override* | |||
| # any settings specified in this file. | |||
| # For more details on how to configure your build environment visit | |||
| # http://www.gradle.org/docs/current/userguide/build_environment.html | |||
| # Specifies the JVM arguments used for the daemon process. | |||
| # The setting is particularly useful for tweaking memory settings. | |||
| org.gradle.jvmargs=-Xmx1536m | |||
| # When configured, Gradle will run in incubating parallel mode. | |||
| # This option should only be used with decoupled projects. More details, visit | |||
| # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects | |||
| # org.gradle.parallel=true | |||
| # AndroidX package structure to make it clearer which packages are bundled with the | |||
| # Android operating system, and which are packaged with your app's APK | |||
| # https://developer.android.com/topic/libraries/support-library/androidx-rn | |||
| android.useAndroidX=true | |||
| # Automatically convert third-party libraries to use AndroidX | |||
| android.enableJetifier=true | |||
| # Kotlin code style for this project: "official" or "obsolete": | |||
| kotlin.code.style=official | |||
| ALIAS_NAME = key0 | |||
| ALIAS_PWD = yzx123456 | |||
| KEY_PATH = ../yzx.jks | |||
| KEY_PWD = yzx123456 | |||
| @@ -0,0 +1,6 @@ | |||
| #Wed May 06 13:56:55 CST 2020 | |||
| distributionBase=GRADLE_USER_HOME | |||
| distributionPath=wrapper/dists | |||
| zipStoreBase=GRADLE_USER_HOME | |||
| zipStorePath=wrapper/dists | |||
| distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip | |||
| @@ -0,0 +1,172 @@ | |||
| #!/usr/bin/env sh | |||
| ############################################################################## | |||
| ## | |||
| ## Gradle start up script for UN*X | |||
| ## | |||
| ############################################################################## | |||
| # Attempt to set APP_HOME | |||
| # Resolve links: $0 may be a link | |||
| PRG="$0" | |||
| # Need this for relative symlinks. | |||
| while [ -h "$PRG" ] ; do | |||
| ls=`ls -ld "$PRG"` | |||
| link=`expr "$ls" : '.*-> \(.*\)$'` | |||
| if expr "$link" : '/.*' > /dev/null; then | |||
| PRG="$link" | |||
| else | |||
| PRG=`dirname "$PRG"`"/$link" | |||
| fi | |||
| done | |||
| SAVED="`pwd`" | |||
| cd "`dirname \"$PRG\"`/" >/dev/null | |||
| APP_HOME="`pwd -P`" | |||
| cd "$SAVED" >/dev/null | |||
| APP_NAME="Gradle" | |||
| APP_BASE_NAME=`basename "$0"` | |||
| # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |||
| DEFAULT_JVM_OPTS="" | |||
| # Use the maximum available, or set MAX_FD != -1 to use that value. | |||
| MAX_FD="maximum" | |||
| warn () { | |||
| echo "$*" | |||
| } | |||
| die () { | |||
| echo | |||
| echo "$*" | |||
| echo | |||
| exit 1 | |||
| } | |||
| # OS specific support (must be 'true' or 'false'). | |||
| cygwin=false | |||
| msys=false | |||
| darwin=false | |||
| nonstop=false | |||
| case "`uname`" in | |||
| CYGWIN* ) | |||
| cygwin=true | |||
| ;; | |||
| Darwin* ) | |||
| darwin=true | |||
| ;; | |||
| MINGW* ) | |||
| msys=true | |||
| ;; | |||
| NONSTOP* ) | |||
| nonstop=true | |||
| ;; | |||
| esac | |||
| CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | |||
| # Determine the Java command to use to start the JVM. | |||
| if [ -n "$JAVA_HOME" ] ; then | |||
| if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |||
| # IBM's JDK on AIX uses strange locations for the executables | |||
| JAVACMD="$JAVA_HOME/jre/sh/java" | |||
| else | |||
| JAVACMD="$JAVA_HOME/bin/java" | |||
| fi | |||
| if [ ! -x "$JAVACMD" ] ; then | |||
| die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME | |||
| Please set the JAVA_HOME variable in your environment to match the | |||
| location of your Java installation." | |||
| fi | |||
| else | |||
| JAVACMD="java" | |||
| which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |||
| Please set the JAVA_HOME variable in your environment to match the | |||
| location of your Java installation." | |||
| fi | |||
| # Increase the maximum file descriptors if we can. | |||
| if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then | |||
| MAX_FD_LIMIT=`ulimit -H -n` | |||
| if [ $? -eq 0 ] ; then | |||
| if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then | |||
| MAX_FD="$MAX_FD_LIMIT" | |||
| fi | |||
| ulimit -n $MAX_FD | |||
| if [ $? -ne 0 ] ; then | |||
| warn "Could not set maximum file descriptor limit: $MAX_FD" | |||
| fi | |||
| else | |||
| warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" | |||
| fi | |||
| fi | |||
| # For Darwin, add options to specify how the application appears in the dock | |||
| if $darwin; then | |||
| GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" | |||
| fi | |||
| # For Cygwin, switch paths to Windows format before running java | |||
| if $cygwin ; then | |||
| APP_HOME=`cygpath --path --mixed "$APP_HOME"` | |||
| CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` | |||
| JAVACMD=`cygpath --unix "$JAVACMD"` | |||
| # We build the pattern for arguments to be converted via cygpath | |||
| ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` | |||
| SEP="" | |||
| for dir in $ROOTDIRSRAW ; do | |||
| ROOTDIRS="$ROOTDIRS$SEP$dir" | |||
| SEP="|" | |||
| done | |||
| OURCYGPATTERN="(^($ROOTDIRS))" | |||
| # Add a user-defined pattern to the cygpath arguments | |||
| if [ "$GRADLE_CYGPATTERN" != "" ] ; then | |||
| OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" | |||
| fi | |||
| # Now convert the arguments - kludge to limit ourselves to /bin/sh | |||
| i=0 | |||
| for arg in "$@" ; do | |||
| CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` | |||
| CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option | |||
| if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition | |||
| eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` | |||
| else | |||
| eval `echo args$i`="\"$arg\"" | |||
| fi | |||
| i=$((i+1)) | |||
| done | |||
| case $i in | |||
| (0) set -- ;; | |||
| (1) set -- "$args0" ;; | |||
| (2) set -- "$args0" "$args1" ;; | |||
| (3) set -- "$args0" "$args1" "$args2" ;; | |||
| (4) set -- "$args0" "$args1" "$args2" "$args3" ;; | |||
| (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; | |||
| (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; | |||
| (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; | |||
| (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; | |||
| (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; | |||
| esac | |||
| fi | |||
| # Escape application args | |||
| save () { | |||
| for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done | |||
| echo " " | |||
| } | |||
| APP_ARGS=$(save "$@") | |||
| # Collect all arguments for the java command, following the shell quoting and substitution rules | |||
| eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" | |||
| # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong | |||
| if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then | |||
| cd "$(dirname "$0")" | |||
| fi | |||
| exec "$JAVACMD" "$@" | |||
| @@ -0,0 +1,84 @@ | |||
| @if "%DEBUG%" == "" @echo off | |||
| @rem ########################################################################## | |||
| @rem | |||
| @rem Gradle startup script for Windows | |||
| @rem | |||
| @rem ########################################################################## | |||
| @rem Set local scope for the variables with windows NT shell | |||
| if "%OS%"=="Windows_NT" setlocal | |||
| set DIRNAME=%~dp0 | |||
| if "%DIRNAME%" == "" set DIRNAME=. | |||
| set APP_BASE_NAME=%~n0 | |||
| set APP_HOME=%DIRNAME% | |||
| @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |||
| set DEFAULT_JVM_OPTS= | |||
| @rem Find java.exe | |||
| if defined JAVA_HOME goto findJavaFromJavaHome | |||
| set JAVA_EXE=java.exe | |||
| %JAVA_EXE% -version >NUL 2>&1 | |||
| if "%ERRORLEVEL%" == "0" goto init | |||
| echo. | |||
| echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |||
| echo. | |||
| echo Please set the JAVA_HOME variable in your environment to match the | |||
| echo location of your Java installation. | |||
| goto fail | |||
| :findJavaFromJavaHome | |||
| set JAVA_HOME=%JAVA_HOME:"=% | |||
| set JAVA_EXE=%JAVA_HOME%/bin/java.exe | |||
| if exist "%JAVA_EXE%" goto init | |||
| echo. | |||
| echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% | |||
| echo. | |||
| echo Please set the JAVA_HOME variable in your environment to match the | |||
| echo location of your Java installation. | |||
| goto fail | |||
| :init | |||
| @rem Get command-line arguments, handling Windows variants | |||
| if not "%OS%" == "Windows_NT" goto win9xME_args | |||
| :win9xME_args | |||
| @rem Slurp the command line arguments. | |||
| set CMD_LINE_ARGS= | |||
| set _SKIP=2 | |||
| :win9xME_args_slurp | |||
| if "x%~1" == "x" goto execute | |||
| set CMD_LINE_ARGS=%* | |||
| :execute | |||
| @rem Setup the command line | |||
| set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | |||
| @rem Execute Gradle | |||
| "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% | |||
| :end | |||
| @rem End local scope for the variables with windows NT shell | |||
| if "%ERRORLEVEL%"=="0" goto mainEnd | |||
| :fail | |||
| rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of | |||
| rem the _cmd.exe /c_ return code! | |||
| if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 | |||
| exit /b 1 | |||
| :mainEnd | |||
| if "%OS%"=="Windows_NT" endlocal | |||
| :omega | |||
| @@ -0,0 +1,390 @@ | |||
| # | |||
| # There is insufficient memory for the Java Runtime Environment to continue. | |||
| # Native memory allocation (malloc) failed to allocate 2110432 bytes for Chunk::new | |||
| # 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 Unscaled Compressed Oops mode in which the Java heap is | |||
| # placed in the first 4GB 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 4GB virtual address. | |||
| # This output file may be truncated or incomplete. | |||
| # | |||
| # Out of Memory Error (allocation.cpp:389), pid=15488, tid=0x00000000000001fc | |||
| # | |||
| # JRE version: OpenJDK Runtime Environment (8.0_212-b04) (build 1.8.0_212-release-1586-b04) | |||
| # Java VM: OpenJDK 64-Bit Server VM (25.212-b04 mixed mode windows-amd64 compressed oops) | |||
| # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |||
| # | |||
| --------------- T H R E A D --------------- | |||
| Current thread (0x0000000016e68000): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=508, stack(0x0000000018770000,0x0000000018870000)] | |||
| Stack: [0x0000000018770000,0x0000000018870000] | |||
| [error occurred during error reporting (printing stack bounds), id 0xc0000005] | |||
| Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |||
| Current CompileTask: | |||
| C2:4647675 44234 ! 4 com.android.tools.r8.dex.m::b (2743 bytes) | |||
| --------------- P R O C E S S --------------- | |||
| Java Threads: ( => current thread ) | |||
| 0x000000001e2c6800 JavaThread "Cache worker for Java compile cache (C:\work\WebEBook\.gradle\5.6.4\javaCompile)" [_thread_blocked, id=16832, stack(0x000000002b620000,0x000000002b720000)] | |||
| 0x000000001e2c3000 JavaThread "WorkerExecutor Queue Thread 5" [_thread_blocked, id=10672, stack(0x000000002fa80000,0x000000002fb80000)] | |||
| 0x000000001e2c2800 JavaThread "stdout" [_thread_in_native, id=1204, stack(0x000000002f880000,0x000000002f980000)] | |||
| 0x000000001ffe3800 JavaThread "stderr" [_thread_in_native, id=14344, stack(0x000000002f480000,0x000000002f580000)] | |||
| 0x000000001ffe0800 JavaThread "stdout" [_thread_in_native, id=16976, stack(0x000000002c110000,0x000000002c210000)] | |||
| 0x000000001ffdf000 JavaThread "stderr" [_thread_in_native, id=10988, stack(0x000000002c010000,0x000000002c110000)] | |||
| 0x000000001ffdc000 JavaThread "stdout" [_thread_in_native, id=14544, stack(0x000000002bf10000,0x000000002c010000)] | |||
| 0x000000001ffde000 JavaThread "stderr" [_thread_in_native, id=7248, stack(0x000000002bb20000,0x000000002bc20000)] | |||
| 0x000000001ffdc800 JavaThread "stdout" [_thread_in_native, id=16556, stack(0x000000002ba20000,0x000000002bb20000)] | |||
| 0x000000001ffdf800 JavaThread "stderr" [_thread_in_native, id=16548, stack(0x000000002b920000,0x000000002ba20000)] | |||
| 0x000000001ffe1000 JavaThread "pool-31-thread-1" [_thread_blocked, id=16612, stack(0x000000002b410000,0x000000002b510000)] | |||
| 0x000000001ffe2800 JavaThread "WorkerExecutor Queue Thread 4" [_thread_blocked, id=15264, stack(0x000000002b820000,0x000000002b920000)] | |||
| 0x000000001ffda800 JavaThread "WorkerExecutor Queue" [_thread_blocked, id=17244, stack(0x000000002b520000,0x000000002b620000)] | |||
| 0x000000001ffd6000 JavaThread "Cache worker for execution history cache (C:\work\WebEBook\.gradle\5.6.4\executionHistory)" [_thread_blocked, id=17384, stack(0x0000000029d70000,0x0000000029e70000)] | |||
| 0x00000000181c1000 JavaThread "Execution worker for ':' Thread 3" [_thread_in_Java, id=14680, stack(0x000000002b310000,0x000000002b410000)] | |||
| 0x00000000181c0800 JavaThread "Execution worker for ':' Thread 2" [_thread_in_Java, id=5192, stack(0x0000000029fe0000,0x000000002a0e0000)] | |||
| 0x00000000181bf800 JavaThread "Execution worker for ':'" [_thread_in_native, id=6388, stack(0x0000000029ee0000,0x0000000029fe0000)] | |||
| 0x00000000181bf000 JavaThread "Cache worker for file content cache (C:\work\WebEBook\.gradle\5.6.4\fileContent)" [_thread_blocked, id=13396, stack(0x0000000029ae0000,0x0000000029be0000)] | |||
| 0x00000000181be000 JavaThread "Cache worker for Build Output Cleanup Cache (C:\work\WebEBook\.gradle\buildOutputCleanup)" [_thread_blocked, id=15100, stack(0x0000000027b60000,0x0000000027c60000)] | |||
| 0x00000000181bd800 JavaThread "Build operations Thread 4" [_thread_blocked, id=13092, stack(0x0000000023790000,0x0000000023890000)] | |||
| 0x00000000181c2000 JavaThread "Build operations Thread 3" [_thread_blocked, id=16140, stack(0x0000000023090000,0x0000000023190000)] | |||
| 0x00000000181b6000 JavaThread "Build operations Thread 2" [_thread_blocked, id=16696, stack(0x0000000022f90000,0x0000000023090000)] | |||
| 0x00000000181bc800 JavaThread "Build operations" [_thread_blocked, id=15828, stack(0x0000000022c90000,0x0000000022d90000)] | |||
| 0x00000000181b8000 JavaThread "Cache worker for cache directory md-rule (C:\Users\Administrator\.gradle\caches\5.6.4\md-rule)" [_thread_blocked, id=16536, stack(0x0000000022b90000,0x0000000022c90000)] | |||
| 0x00000000181b5000 JavaThread "Cache worker for cache directory md-supplier (C:\Users\Administrator\.gradle\caches\5.6.4\md-supplier)" [_thread_blocked, id=5076, stack(0x0000000022a90000,0x0000000022b90000)] | |||
| 0x00000000181bc000 JavaThread "Cache worker for file hash cache (C:\work\WebEBook\.gradle\5.6.4\fileHashes)" [_thread_blocked, id=11564, stack(0x0000000022990000,0x0000000022a90000)] | |||
| 0x00000000181b7800 JavaThread "Thread-165" [_thread_blocked, id=11676, stack(0x0000000021dc0000,0x0000000021ec0000)] | |||
| 0x00000000181b4800 JavaThread "Stdin handler" [_thread_blocked, id=14748, stack(0x000000001eeb0000,0x000000001efb0000)] | |||
| 0x00000000181bb000 JavaThread "Asynchronous log dispatcher for DefaultDaemonConnection: socket connection from /127.0.0.1:62307 to /127.0.0.1:50065" [_thread_blocked, id=4040, stack(0x000000001ebb0000,0x000000001ecb0000)] | |||
| 0x00000000181b6800 JavaThread "Daemon worker Thread 8" [_thread_in_Java, id=16664, stack(0x000000001c110000,0x000000001c210000)] | |||
| 0x00000000181ba800 JavaThread "Cancel handler" [_thread_blocked, id=12800, stack(0x000000001bd10000,0x000000001be10000)] | |||
| 0x00000000181b9800 JavaThread "Handler for socket connection from /127.0.0.1:62307 to /127.0.0.1:50065" [_thread_in_native, id=13052, stack(0x000000001ba10000,0x000000001bb10000)] | |||
| 0x00000000181b9000 JavaThread "Daemon Thread 8" [_thread_blocked, id=14072, stack(0x000000001b910000,0x000000001ba10000)] | |||
| 0x00000000181b3000 JavaThread "RMI TCP Connection(4)-127.0.0.1" daemon [_thread_in_native, id=7540, stack(0x0000000001420000,0x0000000001520000)] | |||
| 0x000000001e2c5000 JavaThread "Cache worker for Java compile cache (C:\Users\Administrator\.gradle\caches\5.6.4\javaCompile)" [_thread_blocked, id=10328, stack(0x000000002f980000,0x000000002fa80000)] | |||
| 0x000000001e2c5800 JavaThread "RMI Reaper" [_thread_blocked, id=656, stack(0x000000002f780000,0x000000002f880000)] | |||
| 0x000000001e2c7000 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=12776, stack(0x000000002f680000,0x000000002f780000)] | |||
| 0x000000001e2cb000 JavaThread "GC Daemon" daemon [_thread_blocked, id=16268, stack(0x000000002f580000,0x000000002f680000)] | |||
| 0x000000001e2be000 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=13656, stack(0x000000002f380000,0x000000002f480000)] | |||
| 0x0000000018340000 JavaThread "Cache worker for file content cache (C:\Users\Administrator\.gradle\caches\5.6.4\fileContent)" [_thread_blocked, id=2696, stack(0x0000000024490000,0x0000000024590000)] | |||
| 0x0000000018345800 JavaThread "Memory manager" [_thread_blocked, id=11972, stack(0x0000000024630000,0x0000000024730000)] | |||
| 0x000000001a832000 JavaThread "Cache worker for execution history cache (C:\Users\Administrator\.gradle\caches\5.6.4\executionHistory)" [_thread_blocked, id=2656, stack(0x0000000020450000,0x0000000020550000)] | |||
| 0x000000001a833800 JavaThread "Cache worker for journal cache (C:\Users\Administrator\.gradle\caches\journal-1)" [_thread_blocked, id=15456, stack(0x000000001c610000,0x000000001c710000)] | |||
| 0x000000001a838000 JavaThread "File lock request listener" [_thread_in_native, id=15500, stack(0x000000001c510000,0x000000001c610000)] | |||
| 0x000000001a77e800 JavaThread "Cache worker for file hash cache (C:\Users\Administrator\.gradle\caches\5.6.4\fileHashes)" [_thread_blocked, id=8580, stack(0x000000001c410000,0x000000001c510000)] | |||
| 0x000000001a64c800 JavaThread "Daemon periodic checks" [_thread_blocked, id=14732, stack(0x000000001b810000,0x000000001b910000)] | |||
| 0x000000001a64b800 JavaThread "Incoming local TCP Connector on port 62307" [_thread_in_native, id=6244, stack(0x000000001b710000,0x000000001b810000)] | |||
| 0x000000001946a800 JavaThread "Daemon health stats" [_thread_blocked, id=11808, stack(0x000000001b410000,0x000000001b510000)] | |||
| 0x0000000018208800 JavaThread "Service Thread" daemon [_thread_blocked, id=12924, stack(0x0000000018a70000,0x0000000018b70000)] | |||
| 0x000000001817d800 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=5612, stack(0x0000000018970000,0x0000000018a70000)] | |||
| 0x0000000016e6c000 JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=15840, stack(0x0000000018870000,0x0000000018970000)] | |||
| =>0x0000000016e68000 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=508, stack(0x0000000018770000,0x0000000018870000)] | |||
| 0x0000000016e1d800 JavaThread "Attach Listener" daemon [_thread_blocked, id=13992, stack(0x0000000018670000,0x0000000018770000)] | |||
| 0x0000000018178800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=16096, stack(0x0000000018570000,0x0000000018670000)] | |||
| 0x0000000003499800 JavaThread "Finalizer" daemon [_thread_blocked, id=15740, stack(0x0000000018070000,0x0000000018170000)] | |||
| 0x0000000003491000 JavaThread "Reference Handler" daemon [_thread_blocked, id=13224, stack(0x0000000017f70000,0x0000000018070000)] | |||
| 0x000000000329e000 JavaThread "main" [_thread_blocked, id=14928, stack(0x00000000032a0000,0x00000000033a0000)] | |||
| Other Threads: | |||
| 0x0000000016dd6000 VMThread [stack: 0x0000000017e70000,0x0000000017f70000] [id=3260] | |||
| 0x0000000018209800 WatcherThread [stack: 0x0000000018b70000,0x0000000018c70000] [id=11356] | |||
| VM state:not at safepoint (normal execution) | |||
| VM Mutex/Monitor currently owned by a thread: None | |||
| heap address: 0x00000000a0000000, size: 1536 MB, Compressed Oops mode: 32-bit | |||
| Narrow klass base: 0x0000000000000000, Narrow klass shift: 3 | |||
| Compressed class space size: 1073741824 Address: 0x0000000100000000 | |||
| Heap: | |||
| PSYoungGen total 471552K, used 84155K [0x00000000e0000000, 0x00000000ff800000, 0x0000000100000000) | |||
| eden space 427008K, 18% used [0x00000000e0000000,0x00000000e4cb7ba8,0x00000000fa100000) | |||
| from space 44544K, 12% used [0x00000000fa100000,0x00000000fa6771b8,0x00000000fcc80000) | |||
| to space 42496K, 0% used [0x00000000fce80000,0x00000000fce80000,0x00000000ff800000) | |||
| ParOldGen total 568320K, used 387928K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 68% used [0x00000000a0000000,0x00000000b7ad6260,0x00000000c2b00000) | |||
| Metaspace used 194759K, capacity 203477K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| Card table byte_map: [0x0000000012860000,0x0000000012b70000] byte_map_base: 0x0000000012360000 | |||
| Marking Bits: (ParMarkBitMap*) 0x0000000077f79f30 | |||
| Begin Bits: [0x0000000013170000, 0x0000000014970000) | |||
| End Bits: [0x0000000014970000, 0x0000000016170000) | |||
| Polling page: 0x0000000001570000 | |||
| CodeCache: size=245760Kb used=123186Kb max_used=123211Kb free=122573Kb | |||
| bounds [0x00000000034a0000, 0x000000000adb0000, 0x00000000124a0000] | |||
| total_blobs=34822 nmethods=33765 adapters=965 | |||
| compilation: enabled | |||
| Compilation events (10 events): | |||
| Event: 4647.478 Thread 0x000000001817d800 44242 2 com.android.tools.r8.u.b.l1::b (10 bytes) | |||
| Event: 4647.478 Thread 0x000000001817d800 nmethod 44242 0x000000000ad3e410 code [0x000000000ad3e580, 0x000000000ad3e748] | |||
| Event: 4647.546 Thread 0x000000001817d800 44244 1 com.android.tools.r8.graph.y$a::d (5 bytes) | |||
| Event: 4647.547 Thread 0x000000001817d800 nmethod 44244 0x000000000ad3e150 code [0x000000000ad3e2a0, 0x000000000ad3e3b0] | |||
| Event: 4647.547 Thread 0x000000001817d800 44245 1 com.android.tools.r8.dex.K::a (5 bytes) | |||
| Event: 4647.547 Thread 0x000000001817d800 nmethod 44245 0x000000000ad3de90 code [0x000000000ad3dfe0, 0x000000000ad3e0d0] | |||
| Event: 4647.547 Thread 0x000000001817d800 44246 1 com.android.tools.r8.dex.K::e (5 bytes) | |||
| Event: 4647.547 Thread 0x000000001817d800 nmethod 44246 0x000000000ad3dbd0 code [0x000000000ad3dd20, 0x000000000ad3de30] | |||
| Event: 4647.649 Thread 0x000000001817d800 44247 1 com.android.tools.r8.graph.DexValue$e::n (2 bytes) | |||
| Event: 4647.650 Thread 0x000000001817d800 nmethod 44247 0x000000000ad3d910 code [0x000000000ad3da60, 0x000000000ad3db70] | |||
| GC Heap History (10 events): | |||
| Event: 4645.337 GC heap before | |||
| {Heap before GC invocations=77 (full 6): | |||
| PSYoungGen total 463872K, used 413306K [0x00000000e0000000, 0x00000000ffa80000, 0x0000000100000000) | |||
| eden space 409088K, 100% used [0x00000000e0000000,0x00000000f8f80000,0x00000000f8f80000) | |||
| from space 54784K, 7% used [0x00000000fc500000,0x00000000fc91eb78,0x00000000ffa80000) | |||
| to space 54784K, 0% used [0x00000000f8f80000,0x00000000f8f80000,0x00000000fc500000) | |||
| ParOldGen total 568320K, used 363386K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 63% used [0x00000000a0000000,0x00000000b62deb78,0x00000000c2b00000) | |||
| Metaspace used 194734K, capacity 203473K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| Event: 4645.354 GC heap after | |||
| Heap after GC invocations=77 (full 6): | |||
| PSYoungGen total 463872K, used 6009K [0x00000000e0000000, 0x00000000ffc00000, 0x0000000100000000) | |||
| eden space 409088K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f8f80000) | |||
| from space 54784K, 10% used [0x00000000f8f80000,0x00000000f955e4f0,0x00000000fc500000) | |||
| to space 52736K, 0% used [0x00000000fc880000,0x00000000fc880000,0x00000000ffc00000) | |||
| ParOldGen total 568320K, used 366070K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 64% used [0x00000000a0000000,0x00000000b657dac8,0x00000000c2b00000) | |||
| Metaspace used 194734K, capacity 203473K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| } | |||
| Event: 4645.852 GC heap before | |||
| {Heap before GC invocations=78 (full 6): | |||
| PSYoungGen total 463872K, used 415097K [0x00000000e0000000, 0x00000000ffc00000, 0x0000000100000000) | |||
| eden space 409088K, 100% used [0x00000000e0000000,0x00000000f8f80000,0x00000000f8f80000) | |||
| from space 54784K, 10% used [0x00000000f8f80000,0x00000000f955e4f0,0x00000000fc500000) | |||
| to space 52736K, 0% used [0x00000000fc880000,0x00000000fc880000,0x00000000ffc00000) | |||
| ParOldGen total 568320K, used 366070K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 64% used [0x00000000a0000000,0x00000000b657dac8,0x00000000c2b00000) | |||
| Metaspace used 194745K, capacity 203473K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| Event: 4645.871 GC heap after | |||
| Heap after GC invocations=78 (full 6): | |||
| PSYoungGen total 465408K, used 9981K [0x00000000e0000000, 0x00000000ff800000, 0x0000000100000000) | |||
| eden space 416768K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f9700000) | |||
| from space 48640K, 20% used [0x00000000fc880000,0x00000000fd23f7f0,0x00000000ff800000) | |||
| to space 49664K, 0% used [0x00000000f9700000,0x00000000f9700000,0x00000000fc780000) | |||
| ParOldGen total 568320K, used 368633K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 64% used [0x00000000a0000000,0x00000000b67fe408,0x00000000c2b00000) | |||
| Metaspace used 194745K, capacity 203473K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| } | |||
| Event: 4646.389 GC heap before | |||
| {Heap before GC invocations=79 (full 6): | |||
| PSYoungGen total 465408K, used 426749K [0x00000000e0000000, 0x00000000ff800000, 0x0000000100000000) | |||
| eden space 416768K, 100% used [0x00000000e0000000,0x00000000f9700000,0x00000000f9700000) | |||
| from space 48640K, 20% used [0x00000000fc880000,0x00000000fd23f7f0,0x00000000ff800000) | |||
| to space 49664K, 0% used [0x00000000f9700000,0x00000000f9700000,0x00000000fc780000) | |||
| ParOldGen total 568320K, used 368633K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 64% used [0x00000000a0000000,0x00000000b67fe408,0x00000000c2b00000) | |||
| Metaspace used 194747K, capacity 203473K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| Event: 4646.407 GC heap after | |||
| Heap after GC invocations=79 (full 6): | |||
| PSYoungGen total 466432K, used 4880K [0x00000000e0000000, 0x00000000ffd00000, 0x0000000100000000) | |||
| eden space 416768K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f9700000) | |||
| from space 49664K, 9% used [0x00000000f9700000,0x00000000f9bc4010,0x00000000fc780000) | |||
| to space 47616K, 0% used [0x00000000fce80000,0x00000000fce80000,0x00000000ffd00000) | |||
| ParOldGen total 568320K, used 375316K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 66% used [0x00000000a0000000,0x00000000b6e85258,0x00000000c2b00000) | |||
| Metaspace used 194747K, capacity 203473K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| } | |||
| Event: 4646.931 GC heap before | |||
| {Heap before GC invocations=80 (full 6): | |||
| PSYoungGen total 466432K, used 421648K [0x00000000e0000000, 0x00000000ffd00000, 0x0000000100000000) | |||
| eden space 416768K, 100% used [0x00000000e0000000,0x00000000f9700000,0x00000000f9700000) | |||
| from space 49664K, 9% used [0x00000000f9700000,0x00000000f9bc4010,0x00000000fc780000) | |||
| to space 47616K, 0% used [0x00000000fce80000,0x00000000fce80000,0x00000000ffd00000) | |||
| ParOldGen total 568320K, used 375316K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 66% used [0x00000000a0000000,0x00000000b6e85258,0x00000000c2b00000) | |||
| Metaspace used 194750K, capacity 203473K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| Event: 4646.948 GC heap after | |||
| Heap after GC invocations=80 (full 6): | |||
| PSYoungGen total 469504K, used 12654K [0x00000000e0000000, 0x00000000ff800000, 0x0000000100000000) | |||
| eden space 427008K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000fa100000) | |||
| from space 42496K, 29% used [0x00000000fce80000,0x00000000fdadb8f0,0x00000000ff800000) | |||
| to space 44544K, 0% used [0x00000000fa100000,0x00000000fa100000,0x00000000fcc80000) | |||
| ParOldGen total 568320K, used 378022K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 66% used [0x00000000a0000000,0x00000000b7129a20,0x00000000c2b00000) | |||
| Metaspace used 194750K, capacity 203473K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| } | |||
| Event: 4647.568 GC heap before | |||
| {Heap before GC invocations=81 (full 6): | |||
| PSYoungGen total 469504K, used 439662K [0x00000000e0000000, 0x00000000ff800000, 0x0000000100000000) | |||
| eden space 427008K, 100% used [0x00000000e0000000,0x00000000fa100000,0x00000000fa100000) | |||
| from space 42496K, 29% used [0x00000000fce80000,0x00000000fdadb8f0,0x00000000ff800000) | |||
| to space 44544K, 0% used [0x00000000fa100000,0x00000000fa100000,0x00000000fcc80000) | |||
| ParOldGen total 568320K, used 378022K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 66% used [0x00000000a0000000,0x00000000b7129a20,0x00000000c2b00000) | |||
| Metaspace used 194759K, capacity 203477K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| Event: 4647.589 GC heap after | |||
| Heap after GC invocations=81 (full 6): | |||
| PSYoungGen total 471552K, used 5596K [0x00000000e0000000, 0x00000000ff800000, 0x0000000100000000) | |||
| eden space 427008K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000fa100000) | |||
| from space 44544K, 12% used [0x00000000fa100000,0x00000000fa6771b8,0x00000000fcc80000) | |||
| to space 42496K, 0% used [0x00000000fce80000,0x00000000fce80000,0x00000000ff800000) | |||
| ParOldGen total 568320K, used 387928K [0x00000000a0000000, 0x00000000c2b00000, 0x00000000e0000000) | |||
| object space 568320K, 68% used [0x00000000a0000000,0x00000000b7ad6260,0x00000000c2b00000) | |||
| Metaspace used 194759K, capacity 203477K, committed 203776K, reserved 1226752K | |||
| class space used 24107K, capacity 25675K, committed 25856K, reserved 1048576K | |||
| } | |||
| Deoptimization events (10 events): | |||
| Event: 4644.296 Thread 0x00000000181bf800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000948e7bc method=com.android.tools.r8.ir.regalloc.e.a(Ljava/util/Set;Ljava/util/Map;)Z @ 107 | |||
| Event: 4644.591 Thread 0x00000000181c0800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000007271270 method=com.android.ide.common.blame.SourceFilePosition.equals(Ljava/lang/Object;)Z @ 2 | |||
| Event: 4644.591 Thread 0x00000000181c0800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000009919614 method=com.google.common.base.Objects.equal(Ljava/lang/Object;Ljava/lang/Object;)Z @ 6 | |||
| Event: 4644.734 Thread 0x00000000181c1000 Uncommon trap: reason=speculate_class_check action=maybe_recompile pc=0x00000000086b9870 method=com.android.tools.r8.ir.optimize.h.k(Lcom/android/tools/r8/u/b/T;)V @ 237 | |||
| Event: 4644.759 Thread 0x00000000181b6800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000008f3e734 method=com.google.common.base.Objects.equal(Ljava/lang/Object;Ljava/lang/Object;)Z @ 6 | |||
| Event: 4644.771 Thread 0x00000000181bf800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000894b728 method=com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator.b()V @ 1236 | |||
| Event: 4644.813 Thread 0x00000000181c1000 Uncommon trap: reason=speculate_class_check action=maybe_recompile pc=0x00000000086b9870 method=com.android.tools.r8.ir.optimize.h.k(Lcom/android/tools/r8/u/b/T;)V @ 237 | |||
| Event: 4645.723 Thread 0x00000000181bf800 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000008ec36c4 method=com.android.tools.r8.u.a.h.e.a(Lcom/android/tools/r8/u/b/M0;)V @ 75 | |||
| Event: 4647.398 Thread 0x00000000181bf800 Uncommon trap: reason=array_check action=maybe_recompile pc=0x000000000aa332a0 method=java.util.TimSort.mergeLo(IIII)V @ 133 | |||
| Event: 4647.399 Thread 0x00000000181bf800 Uncommon trap: reason=array_check action=maybe_recompile pc=0x000000000aa332a0 method=java.util.TimSort.mergeLo(IIII)V @ 133 | |||
| Classes redefined (0 events): | |||
| No events | |||
| Internal exceptions (10 events): | |||
| Event: 4646.679 Thread 0x00000000181c0800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000edeee2d0) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.136 Thread 0x00000000181b6800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000e742e5d0) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.373 Thread 0x00000000181b6800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000e74b3588) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.385 Thread 0x00000000181b6800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000f227b568) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.443 Thread 0x00000000181bf800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000f46bd038) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.545 Thread 0x00000000181b6800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000f22afcf8) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.547 Thread 0x00000000181b6800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000f9334eb0) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.613 Thread 0x00000000181bf800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000e1562d60) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.615 Thread 0x00000000181b6800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000e17bd450) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Event: 4647.638 Thread 0x00000000181bf800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000e2dd6b80) thrown at [D:\src\AOSP-openjdk-cygwin\jdk8u\hotspot\src\share\vm\prims\jni.cpp, line 710] | |||
| Events (10 events): | |||
| Event: 4647.660 Thread 0x00000000181c1000 DEOPT PACKING pc=0x000000000a75059b sp=0x000000002b40aee0 | |||
| Event: 4647.660 Thread 0x00000000181c1000 DEOPT UNPACKING pc=0x00000000034e75d0 sp=0x000000002b40af48 mode 0 | |||
| Event: 4647.662 Thread 0x00000000181c1000 DEOPT PACKING pc=0x000000000a7696b5 sp=0x000000002b40b2d0 | |||
| Event: 4647.662 Thread 0x00000000181c1000 DEOPT UNPACKING pc=0x00000000034e75d0 sp=0x000000002b40b1e0 mode 0 | |||
| Event: 4647.671 Thread 0x00000000181c0800 DEOPT PACKING pc=0x000000000a769427 sp=0x000000002a0dac10 | |||
| Event: 4647.671 Thread 0x00000000181c0800 DEOPT UNPACKING pc=0x00000000034e75d0 sp=0x000000002a0dab20 mode 0 | |||
| Event: 4647.672 Thread 0x00000000181c1000 DEOPT PACKING pc=0x0000000008e2cbdd sp=0x000000002b40aca0 | |||
| Event: 4647.672 Thread 0x00000000181c1000 DEOPT UNPACKING pc=0x00000000034e75d0 sp=0x000000002b40ab70 mode 0 | |||
| Event: 4647.673 Thread 0x00000000181c0800 DEOPT PACKING pc=0x000000000a750290 sp=0x000000002a0da820 | |||
| Event: 4647.673 Thread 0x00000000181c0800 DEOPT UNPACKING pc=0x00000000034e75d0 sp=0x000000002a0da898 mode 0 | |||
| Dynamic libraries: | |||
| 0x00007ff771650000 - 0x00007ff771681000 C:\Program Files\android-studio\jre\bin\java.exe | |||
| 0x00007fff0d7c0000 - 0x00007fff0d9b0000 C:\Windows\SYSTEM32\ntdll.dll | |||
| 0x00007fff0c100000 - 0x00007fff0c1b2000 C:\Windows\System32\KERNEL32.DLL | |||
| 0x00007fff0a930000 - 0x00007fff0abd3000 C:\Windows\System32\KERNELBASE.dll | |||
| 0x00007fff0c220000 - 0x00007fff0c2c3000 C:\Windows\System32\ADVAPI32.dll | |||
| 0x00007fff0cf10000 - 0x00007fff0cfae000 C:\Windows\System32\msvcrt.dll | |||
| 0x00007fff0c4a0000 - 0x00007fff0c537000 C:\Windows\System32\sechost.dll | |||
| 0x00007fff0d150000 - 0x00007fff0d270000 C:\Windows\System32\RPCRT4.dll | |||
| 0x00007fff0d350000 - 0x00007fff0d4e4000 C:\Windows\System32\USER32.dll | |||
| 0x00007fff0a850000 - 0x00007fff0a871000 C:\Windows\System32\win32u.dll | |||
| 0x00007fff0d4f0000 - 0x00007fff0d516000 C:\Windows\System32\GDI32.dll | |||
| 0x00007fff0b4d0000 - 0x00007fff0b664000 C:\Windows\System32\gdi32full.dll | |||
| 0x00007fff0b670000 - 0x00007fff0b70e000 C:\Windows\System32\msvcp_win.dll | |||
| 0x00007fff0b770000 - 0x00007fff0b86a000 C:\Windows\System32\ucrtbase.dll | |||
| 0x00007ffef6f40000 - 0x00007ffef71c5000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.418_none_e6c6b287130d565d\COMCTL32.dll | |||
| 0x00007fff0b940000 - 0x00007fff0bc76000 C:\Windows\System32\combase.dll | |||
| 0x00007fff0a750000 - 0x00007fff0a7d0000 C:\Windows\System32\bcryptPrimitives.dll | |||
| 0x00007fff0d320000 - 0x00007fff0d34e000 C:\Windows\System32\IMM32.DLL | |||
| 0x0000000050e20000 - 0x0000000050ef2000 C:\Program Files\android-studio\jre\jre\bin\msvcr100.dll | |||
| 0x00000000777b0000 - 0x0000000077ff6000 C:\Program Files\android-studio\jre\jre\bin\server\jvm.dll | |||
| 0x00007fff0c2d0000 - 0x00007fff0c2d8000 C:\Windows\System32\PSAPI.DLL | |||
| 0x00007fff058b0000 - 0x00007fff058ba000 C:\Windows\SYSTEM32\VERSION.dll | |||
| 0x00007fff08730000 - 0x00007fff08754000 C:\Windows\SYSTEM32\WINMM.dll | |||
| 0x00007fff07030000 - 0x00007fff07039000 C:\Windows\SYSTEM32\WSOCK32.dll | |||
| 0x00007fff0c420000 - 0x00007fff0c48f000 C:\Windows\System32\WS2_32.dll | |||
| 0x00007fff086d0000 - 0x00007fff086fd000 C:\Windows\SYSTEM32\winmmbase.dll | |||
| 0x00007fff0a800000 - 0x00007fff0a84a000 C:\Windows\System32\cfgmgr32.dll | |||
| 0x00007fff04850000 - 0x00007fff0485f000 C:\Program Files\android-studio\jre\jre\bin\verify.dll | |||
| 0x00007ffef9300000 - 0x00007ffef9329000 C:\Program Files\android-studio\jre\jre\bin\java.dll | |||
| 0x00007fff036b0000 - 0x00007fff036c6000 C:\Program Files\android-studio\jre\jre\bin\zip.dll | |||
| 0x00007fff0c820000 - 0x00007fff0cf05000 C:\Windows\System32\SHELL32.dll | |||
| 0x00007fff0d270000 - 0x00007fff0d319000 C:\Windows\System32\shcore.dll | |||
| 0x00007fff0ad50000 - 0x00007fff0b4cf000 C:\Windows\System32\windows.storage.dll | |||
| 0x00007fff0a6e0000 - 0x00007fff0a6ff000 C:\Windows\System32\profapi.dll | |||
| 0x00007fff0a700000 - 0x00007fff0a74a000 C:\Windows\System32\powrprof.dll | |||
| 0x00007fff0a690000 - 0x00007fff0a6a0000 C:\Windows\System32\UMPDC.dll | |||
| 0x00007fff0c7c0000 - 0x00007fff0c812000 C:\Windows\System32\shlwapi.dll | |||
| 0x00007fff0a6a0000 - 0x00007fff0a6b1000 C:\Windows\System32\kernel.appcore.dll | |||
| 0x00007fff0ad30000 - 0x00007fff0ad47000 C:\Windows\System32\cryptsp.dll | |||
| 0x00007ffef9140000 - 0x00007ffef915a000 C:\Program Files\android-studio\jre\jre\bin\net.dll | |||
| 0x00007ffefdca0000 - 0x00007ffefde76000 C:\Windows\SYSTEM32\urlmon.dll | |||
| 0x00007ffefd2c0000 - 0x00007ffefd566000 C:\Windows\SYSTEM32\iertutil.dll | |||
| 0x00007fff0a0d0000 - 0x00007fff0a0dc000 C:\Windows\SYSTEM32\CRYPTBASE.DLL | |||
| 0x00007fff09f00000 - 0x00007fff09f67000 C:\Windows\system32\mswsock.dll | |||
| 0x00007ffef90a0000 - 0x00007ffef90b3000 C:\Program Files\android-studio\jre\jre\bin\nio.dll | |||
| 0x00007ffef2380000 - 0x00007ffef23a6000 C:\Users\Administrator\.gradle\native\30\windows-amd64\native-platform.dll | |||
| 0x00007fff03a10000 - 0x00007fff03a1d000 C:\Program Files\android-studio\jre\jre\bin\management.dll | |||
| 0x00007fff09a70000 - 0x00007fff09aa3000 C:\Windows\system32\rsaenh.dll | |||
| 0x00007fff0a7d0000 - 0x00007fff0a7f6000 C:\Windows\System32\bcrypt.dll | |||
| 0x00007fff0a580000 - 0x00007fff0a5a5000 C:\Windows\SYSTEM32\USERENV.dll | |||
| 0x00007fff09c10000 - 0x00007fff09c4a000 C:\Windows\SYSTEM32\IPHLPAPI.DLL | |||
| 0x00007fff0c0f0000 - 0x00007fff0c0f8000 C:\Windows\System32\NSI.dll | |||
| 0x00007fff05890000 - 0x00007fff058a6000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL | |||
| 0x00007fff05840000 - 0x00007fff0585c000 C:\Windows\SYSTEM32\dhcpcsvc.DLL | |||
| 0x00007fff09c50000 - 0x00007fff09d1a000 C:\Windows\SYSTEM32\DNSAPI.dll | |||
| 0x00007ffef2cb0000 - 0x00007ffef2cd4000 C:\Program Files\android-studio\jre\jre\bin\sunec.dll | |||
| 0x00007fff039c0000 - 0x00007fff039ca000 C:\Windows\System32\rasadhlp.dll | |||
| 0x00007fff05120000 - 0x00007fff05197000 C:\Windows\System32\fwpuclnt.dll | |||
| 0x00007fff02ec0000 - 0x00007fff02ecb000 C:\Program Files\android-studio\jre\jre\bin\sunmscapi.dll | |||
| 0x00007fff0abe0000 - 0x00007fff0ad29000 C:\Windows\System32\CRYPT32.dll | |||
| 0x00007fff0a6c0000 - 0x00007fff0a6d2000 C:\Windows\System32\MSASN1.dll | |||
| 0x00007fff096f0000 - 0x00007fff09721000 C:\Windows\SYSTEM32\ntmarta.dll | |||
| 0x00007fff08830000 - 0x00007fff088bf000 C:\Windows\system32\apphelp.dll | |||
| 0x00007fff07180000 - 0x00007fff0719e000 C:\Users\Administrator\AppData\Local\Temp\native-platform2950005020272175531dir\native-platform.dll | |||
| VM Arguments: | |||
| jvm_args: -Xmx1536m -Dfile.encoding=GBK -Duser.country=CN -Duser.language=zh -Duser.variant | |||
| java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 5.6.4 | |||
| java_class_path (initial): C:\Users\Administrator\.gradle\wrapper\dists\gradle-5.6.4-all\ankdp27end7byghfw1q2sw75f\gradle-5.6.4\lib\gradle-launcher-5.6.4.jar | |||
| Launcher Type: SUN_STANDARD | |||
| Environment Variables: | |||
| PATH=C:\Program Files (x86)\NetSarang\Xftp 6\;C:\Program Files (x86)\NetSarang\Xshell 6\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Git\cmd;C:\Program Files\dotnet\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\AppData\Roaming\npm | |||
| USERNAME=Administrator | |||
| OS=Windows_NT | |||
| PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 60 Stepping 3, GenuineIntel | |||
| --------------- S Y S T E M --------------- | |||
| OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.329) | |||
| CPU:total 4 (initial active 4) (4 cores per cpu, 1 threads per core) family 6 model 60 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, lzcnt, tsc, tscinvbit, bmi1, bmi2 | |||
| Memory: 4k page, physical 16736456k(4941020k free), swap 18623688k(6080k free) | |||
| vm_info: OpenJDK 64-Bit Server VM (25.212-b04) for windows-amd64 JRE (1.8.0_212-release-1586-b04), built by "builder" with MS VC++ 10.0 (VS2010) | |||
| time: Wed May 06 15:14:59 2020 | |||
| timezone: Öйú±ê׼ʱ¼ä | |||
| elapsed time: 4647 seconds (0d 1h 17m 27s) | |||
| @@ -0,0 +1,2 @@ | |||
| include ':app' | |||
| rootProject.name='WebEBook' | |||