ShixunFrontend: Android App前端工程实训指南

需积分: 9 0 下载量 19 浏览量 更新于2024-12-07 收藏 607KB ZIP 举报
资源摘要信息:"ShixunFrontend是一个针对软件工程项目的实训项目,重点在于开发Android应用程序。在这个项目中,开发者需要具备使用Java语言的编程技能,并且对Android应用开发有深入的理解。接下来,我们将详细探讨这个实训项目所涉及的技术栈和关键知识点。 1. **Android SDK版本**: 标题中提到的“Minimum SDK Level: 19 (Android 4.4)”和“Target SDK Level: 28 (Android P)”是Android应用开发中的核心概念。Minimum SDK Level指的是该应用支持的最低Android系统版本,而Target SDK Level则是开发者针对的最高版本,以确保应用可以充分利用该版本的新特性和性能优化。在ShixunFrontend实训项目中,开发者的应用至少需要支持Android 4.4系统,同时应针对Android 9(Android P)进行优化。 2. **JDK版本**: JDK(Java Development Kit)是编写Java应用程序的基础工具集,其中包含了运行Java程序所需的编译器、调试器和其他工具。在本实训项目中指定使用JDK 8,意味着开发者需要安装Java 8的开发工具包,并使用Java 8的语言特性来编写应用代码。 3. **Gradle版本**: Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具,被广泛用于Android项目的构建和管理。在这个项目中,使用的是Gradle 4.4版本。开发者需要熟悉如何使用Gradle构建脚本来定义和构建项目,包括依赖项管理、任务自动化等。 4. **Android App开发**: 该项目是一个Android应用开发实训项目,要求开发者掌握Android应用开发的整个流程,包括UI设计、事件处理、数据存储、网络通信等。开发者需要了解Android平台的架构,包括操作系统层面的Linux内核,以及应用框架层面的Activity、Service、BroadcastReceiver和ContentProvider等组件。 5. **前端技术**: 虽然这是一个Android App项目,但Android前端开发涉及的技术并不局限于Android自身。在实际开发中,开发者通常还需要熟悉前端技术,例如HTML、CSS、JavaScript,因为Android应用也可能需要Web视图来展示网页内容,或者使用WebView组件嵌入HTML/CSS/JavaScript实现的部分。 6. **版本控制**: 资源摘要信息中提到的“ShixunFrontend-master”暗示了实训项目使用了版本控制系统中的分支命名约定,这通常表示主要开发分支。在实际开发中,开发者需要熟练使用Git或其他版本控制系统来管理源代码,这样可以有效地跟踪代码变更、协作开发和应对错误。 7. **后端交互**: 描述中提到“With backend”,表明这个实训项目不仅仅关注前端开发,还包括与后端服务的交互。因此,开发者应当熟悉如何使用HTTP协议、RESTful API等技术与后端服务器进行数据交换。 8. **开发工具和环境**: 开发者需要配置合适的开发环境,例如安装Android Studio、配置SDK和NDK工具等。Android Studio是官方推荐的Android应用开发集成开发环境(IDE),提供代码编辑、调试、性能分析等丰富的开发功能。 9. **性能优化与兼容性**: 在实训项目中,开发者将学习如何针对不同版本的Android系统进行应用优化,并确保应用的兼容性。这包括了解不同版本间的API变化、特性差异以及硬件能力限制等。 10. **安全性考虑**: 最后,开发者需要对应用的安全性有所了解,包括数据加密、网络安全通信、以及防护常见的安全漏洞。 总的来说,ShixunFrontend实训项目不仅提供了学习Android前端开发的机会,还要求开发者掌握一系列相关的技能和工具使用,为未来从事Android应用开发工作打下坚实基础。"

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.hjschoolhelper210301201_1, PID: 2778 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hjschoolhelper210301201_1/com.example.hjschoolhelper210301201_1.LoginMainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3645) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7872) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:846) at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:809) at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:195) at com.example.hjschoolhelper210301201_1.LoginMainActivity.onCreate(LoginMainActivity.java:26) at android.app.Activity.performCreate(Activity.java:8305) at android.app.Activity.performCreate(Activity.java:8284) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3626) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loopOnce(Looper.java:201)  at android.os.Looper.loop(Looper.java:288)  at android.app.ActivityThread.main(ActivityThread.java:7872)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 

411 浏览量