技术栈
本课题主要涉及的关键技术包括:Android移动端技术,使用Android Studio进行开发,Java作为开发语言。数据库选择mysql,轻量级,运行速度快,适合移动设备使用。使用MVVM模式将代码划分为Model、View、ViewModel三个部分,使用data Binding自动同步UI和data,使代码更简洁。需要运用安卓的四大组件和掌握它们的生命周期,用于和用户交互以及实现数据共享等作用。打算采用RecyclerView控件实现商品列表展示,RecyclerView封装了viewholder的回收复用,逻辑被封装,写起来更加简单,并采用其他Android原生控件更好的绘制页面,也可以自定义绘制自己需要的控件。使用bundle用来传递数据,完成进程间通信。
后端开发工具:eclipse
编程语言: java
Android开发工具:Android studio3.0
数据库: mysql5.7
数据库工具:Navicat/SQLyog都可以
(1)客户端使用Android stuido进行开发。
(2)服务端后台使用eclipse进行开发。
(3)数据库使用mysql进行数据存储。
(4)使用Android stuido自带的模拟器进行运行。
开发核心技术
Mysql简介:
数据库是学习开发过程中必不可少的一部分,有很多的企业也正在使用Mysql,平时的开发学习也离不开它,能节约很多成本,并且性能要求不高,是中小型企业的首选。
Android平台作为全球最流行的移动操作系统之一,不断演进并提供新的功能和技术。未来,随着硬件技术和软件创新的推动,Android将持续适应新的设备形态和用户需求,为开发者和用户带来更多可能性和便利性。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等
具体实现截图
Android项目结构解析
- .gradle和.idea
这两个目录下放置的都是Android Studio自动生成的一些文件,大致是项目的配置信息,包括历史记录,版本控制信息等,无须关心,也不要去手动编辑(其实也可以将其隐藏起来)
2.app
项目中的代码、资源等内容都是放置在这个目录下的,我们后面的开发工作也基本是在这 个目录下进行的,待会儿还会对这个目录单独展开讲解。
3.build
这个目录主要包含了一些在编译时自动生成的文件,也不需要过多关心。
4.gradle
这个目录下包含了gradle wrapper的配置文件 ( 其实目前也不用过多的理解它,因为我也还在了解这个中,大概是帮忙配置每一个项目对应的radle版本的 )
使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。Android Studio默认就是启用gradle wrapper方式的,如果需要更改成离线模式,可以点击Android Studio导航栏→File→Settings→Build, Execution,Deployment→Gradle,进行配置更改。 - .gitgnore
这个文件是用来将指定的目录或文件排除在版本控制之外的。(git ignore嘛)
6.build.gradle
这是项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的。稍后我们将会详细分析gradle构建脚本中的具体内容。
7.gradle.properties
这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
8.gradlew和gradlew.bat
这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的。
核心代码部分展示
public class LoginActivity extends BaseActivity {
// title
private TextView mTvTitle;
// 登录用户名称
private EditText mLoginNumber;
// 登录密码
private EditText mLoginPswd;
// 登录按钮
private Button mLogin;
private Button mEnterpriseQuery;
private LinearLayout mllTop;
private UserModel userModel;
String[] permissions = new String[]{
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
private static final int ACCESS_FINE_LOCATION = 1;
private static final int WRITE_EXTERNAL_STORAGE = 2;
List<String> mPermissionList = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loginnew);
initWidget();
checkPermission();
}
/**
* 控件初始化
*/
@Override
public void initWidget() {
mdialog = new LoadingDialog(this, "正在登录");
mLoginNumber = (EditText) findViewById(R.id.mLoginNumber);
mLoginPswd = (EditText) findViewById(R.id.mLoginPswd);
mLogin = (Button) findViewById(R.id.mLogin);
mEnterpriseQuery = (Button) findViewById(R.id.mEnterpriseQuery);
// 事件的监听
mLogin.setOnClickListener(this);
mEnterpriseQuery.setOnClickListener(this);
// 给输入框设置默认的测试数据
mLoginNumber.setSelection(mLoginNumber.getText().length());
mLoginNumber.setText("15249245001");
mLoginPswd.setText("123456");
}
代码解析
首先可以看到,MainActivity是继承自AppCompatActivity的。AppCompatActivity是AndroidX中提供的一种向下兼容的Activity,可以使Activity在不同系统版本中的功能保持一致性。
而Activity类是Android系统提供的一个基类,我们项目中所有自定义的Activity都必须继承它或者它的子类才能拥有Activity的特性(AppCompatActivity是Activity的子类)。
然后可以看到MainActivity中有一个onCreate()方法,这个方法是一个Activity被创建时必定要执行的方法,其中只有两行代码,并且没有“Hello World! ”的字样那么虚拟机中显示的“Hello World! ”是在哪里定义的呢?
其实Android程序的设计讲究逻辑和视图分离,因此是不推荐在Activity中直接编写界面的。一种更加通用的做法是,在布局文件中编写界面,然后在Activity中引入进来。
可以看到,在onCreate()方法的第二行调用了setContentView()方法,就是这个方法给当前的Activity引入了一个activity_main布局,那“Hello World!”一定就是在这里定义的了!我们快打开这个文件看一看。
布局文件都是定义在res/layout目录下的,当你展开layout目录,你会看到activity_main.xml这个文件
总体设计逻辑和思路:
1:先设计数据库表文件
2:写服务端jsp页面以及写api接口给客户端提供数据
3:完成后台服务端的数据交互,也就是jsp页面数据的存储和显示
4:进行客户端页面的开发;
5:进行客户端对api接口的调用,也就是获取数据库的数据以及在客户端进行显示
Android移动端实现原理:
1:使用android原生控件以及xml布局文件来完成界面的显示
2:使用java代码完成功能的数据和逻辑交互
3:使用http网络请求完成数据的请求;
4:使用json数据解析完成客户端数据的回调和显示
##服务端后台实现原理:
1:使用mysql完成数据的存储
2:使用jdbc完成数据库和代码的逻辑交互
3:使用jsp完成网页数据的显示
4:使用java代码完成api接口的编写以及以及数据的回调
源码获取
文章最下方名片联系我即可~
✌💗大家点赞、收藏、关注、评论啦 、查看✌💗
👇🏻获取联系方式👇🏻