wz / index.html
Bbkblo's picture
Add 3 files
a236d79 verified
Raw
History Blame Contribute Delete
6.85 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dvid Project Structure</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
.file-tree {
font-family: 'Courier New', monospace;
background-color: #f8f9fa;
padding: 20px;
border-radius: 8px;
margin-bottom: 20px;
}
.folder {
color: #1a73e8;
font-weight: bold;
}
.file {
color: #34a853;
margin-left: 20px;
}
.file-content {
background-color: #f1f3f4;
padding: 15px;
border-radius: 6px;
margin-top: 10px;
overflow-x: auto;
}
.section-title {
color: #5f6368;
border-bottom: 1px solid #dadce0;
padding-bottom: 8px;
margin-top: 30px;
}
</style>
</head>
<body class="bg-gray-50 p-8">
<div class="max-w-6xl mx-auto">
<h1 class="text-3xl font-bold text-gray-800 mb-6">Dvid Android Project Structure</h1>
<div class="bg-white rounded-lg shadow-md p-6 mb-8">
<h2 class="text-xl font-semibold text-gray-700 mb-4">Project Specifications</h2>
<ul class="list-disc pl-6 text-gray-600">
<li><span class="font-medium">Project Name:</span> Dvid</li>
<li><span class="font-medium">Package Name:</span> com.example.dvid</li>
<li><span class="font-medium">Minimum SDK:</span> 21 (Android 5.0 Lollipop)</li>
<li><span class="font-medium">Language:</span> Java</li>
<li><span class="font-medium">Features:</span> Whisper.cpp with NDK support</li>
</ul>
</div>
<h2 class="section-title text-2xl">Complete Project Structure</h2>
<div class="file-tree">
<div class="folder">Dvid/</div>
<div class="file">.gitignore</div>
<div class="file">build.gradle (Project-level)</div>
<div class="file">settings.gradle</div>
<div class="file">gradle.properties</div>
<div class="folder">app/</div>
<div class="file">build.gradle (Module-level)</div>
<div class="file">proguard-rules.pro</div>
<div class="folder">src/</div>
<div class="folder">main/</div>
<div class="file">AndroidManifest.xml</div>
<div class="folder">java/com/example/dvid/</div>
<div class="file">MainActivity.java</div>
<div class="file">WhisperJNI.java (JNI interface)</div>
<div class="folder">jni/</div>
<div class="file">Android.mk</div>
<div class="file">Application.mk</div>
<div class="file">CMakeLists.txt</div>
<div class="folder">whisper.cpp/ (full whisper.cpp library)</div>
<div class="folder">assets/</div>
<div class="file">ggml-base.en.bin (Whisper model)</div>
<div class="folder">res/</div>
<div class="folder">drawable/</div>
<div class="file">ic_launcher.png (app icon)</div>
<div class="file">ic_mic.png (microphone icon)</div>
<div class="folder">layout/</div>
<div class="file">activity_main.xml</div>
<div class="folder">values/</div>
<div class="file">strings.xml</div>
<div class="file">colors.xml</div>
<div class="file">styles.xml</div>
<div class="folder">gradle/</div>
<div class="folder">wrapper/</div>
<div class="file">gradle-wrapper.jar</div>
<div class="file">gradle-wrapper.properties</div>
</div>
<h2 class="section-title text-2xl">Key File Contents</h2>
<div class="mb-8">
<h3 class="text-lg font-medium text-gray-700 mb-2">app/build.gradle</h3>
<div class="file-content">
<pre>
apply plugin: 'com.android.application'
android {
compileSdkVersion 33
defaultConfig {
applicationId "com.example.dvid"
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags "-std=c++17"
arguments "-DANDROID_STL=c++_shared"
}
}
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "src/main/jni/CMakeLists.txt"
version "3.22.1"
}
}
sourceSets {
main {
assets.srcDirs = ['src/main/assets']
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}</pre>
</div>
</div>
<div class="mb-8">
<h3 class="text-lg font-medium text-gray-700 mb-2">AndroidManifest.xml</h3>
<div class="file-content">
<pre>
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.dvid"&gt;
&lt;uses-permission android:name="android.permission.RECORD_AUDIO" /&gt;
&lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt;
&lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /&gt;
&lt;application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@drawable/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"&gt;
&lt;activity android:name=".MainActivity"&gt;
&lt;intent-filter&gt;
&lt;action android:name="android.intent.action.MAIN" /&gt;
&lt;category android:name="android.intent.category.LAUNCHER" /&gt;
</html>