From 78fb8f280188996ded13a6a10ce2fe09e0656972 Mon Sep 17 00:00:00 2001 From: xy0dls <2153766822@qq.com> Date: Thu, 10 Apr 2025 12:28:41 +0800 Subject: [PATCH] =?UTF-8?q?add=20doc/MiCode=20Note=20Android=20Studio=20?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=90=AD=E5=BB=BA.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...MiCode Note Android Studio 环境搭建.md | 286 ++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 doc/MiCode Note Android Studio 环境搭建.md diff --git a/doc/MiCode Note Android Studio 环境搭建.md b/doc/MiCode Note Android Studio 环境搭建.md new file mode 100644 index 0000000..d27b9bc --- /dev/null +++ b/doc/MiCode Note Android Studio 环境搭建.md @@ -0,0 +1,286 @@ +# MiCode Note Android Studio 环境搭建 + +#### Android Studio 下载安装[Android Studio官网下载](https://developer.android.com/studio) 配置网络环境 + +# 下载Notes源代码 + +# 创建Android项目 + +按图完成项目创建,并等待右下角项目创建进度完成。 +![create](https://blog.stepbystep.host/2025/03/17/minote-environment/create.png) + +```bash +cp -r "D:/Mi_note/Mi_note/Notes-master/src/net/micode/notes/"* "D:/MiNote/app/src/main/java/net/micode/notes/" +cp -r "D:/Mi_note/Mi_note/Notes-master/res/"* "D:/MiNote/app/src/main/res/" +``` + +cmd下命令 + +```bash +xcopy /E /I "D:\Mi_note\Mi_note\Notes-master\src\net\micode\notes\*" "D:\MiNote\app\src\main\java\net\micode\notes\" +xcopy /E /I "D:\Mi_note\Mi_note\Notes-master\res\*" "D:\MiNote\app\src\main\res\" +``` + + + +# 修改Manifest.xml + +![manifest](https://blog.stepbystep.host/2025/03/17/minote-environment/manifest.png) + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +# 下载依赖 + +```bash +# 下载(用 curl 替代 wget) +curl -o httpcomponents-client-4.5.14-bin.zip https://dlcdn.apache.org/httpcomponents/httpclient/binary/httpcomponents-client-4.5.14-bin.zip + +# 创建目录 +mkdir -p app/libs + +# 解压到指定路径 +unzip httpcomponents-client-4.5.14-bin.zip -d app/libs + +# 进入解压后的目录 +cd app/libs/httpcomponents-client-4.5.14 + +# 清理不需要的文件 +rm -rf javadoc/ LICENSE.txt NOTICE.txt RELEASE_NOTES.txt + +# 把 lib 目录下所有 jar 复制到当前目录 +cp ./lib/* . + +# 删除 lib 目录 +rm -rf lib + +``` + +# 添加依赖 + +![gradle](https://blog.stepbystep.host/2025/03/17/minote-environment/gradle.png) + +```Gradle +implementation(fileTree(mapOf( + "dir" to "libs", + "include" to listOf("*.aar", "*.jar"), + "exclude" to emptyList() +))) +``` + +# 修改过时函数showNotification + +![fun-replace](https://blog.stepbystep.host/2025/03/17/minote-environment/fun-replace.png) + +```java +private void showNotification(int tickerId, String content) { + PendingIntent pendingIntent; + if (tickerId != R.string.ticker_success) { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesPreferenceActivity.class), PendingIntent.FLAG_IMMUTABLE); + } else { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesListActivity.class), PendingIntent.FLAG_IMMUTABLE); + } + Notification.Builder builder = new Notification.Builder(mContext) + .setAutoCancel(true) + .setContentTitle(mContext.getString(R.string.app_name)) + .setContentText(content) + .setContentIntent(pendingIntent) + .setWhen(System.currentTimeMillis()) + .setOngoing(true); + Notification notification=builder.getNotification(); + mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); + } +``` + +# 转换switch为if-else (共4处) + +![switch-replace](https://blog.stepbystep.host/2025/03/17/minote-environment/switch-replace.png) + +# 修改重复引入依赖 + +```Gradle +// implementation(fileTree(mapOf( +// "dir" to "libs", +// "include" to listOf("*.aar", "*.jar"), +// "exclude" to emptyList() +// ))) +implementation(files("libs/httpclient-osgi-4.5.14.jar")) +implementation(files("libs/httpclient-win-4.5.14.jar")) +implementation(files("libs/httpcore-4.4.16.jar")) +``` + +在build.gradle(Module:app)的android字段里面,加上这段代码,排除掉冲突的系统依赖包 + +```Gradle +packaging { + resources.excludes.add("META-INF/DEPENDENCIES"); + resources.excludes.add("META-INF/NOTICE"); + resources.excludes.add("META-INF/LICENSE"); + resources.excludes.add("META-INF/LICENSE.txt"); + resources.excludes.add("META-INF/NOTICE.txt"); + } +``` + +# 创建虚拟机 + +# 运行成功 + +![result](https://blog.stepbystep.host/2025/03/17/minote-environment/result.png) \ No newline at end of file