系列文章目录
软工课设学习记录贴
基于android原生Java+(后端)python+django
文章目录
一、Android Studio布局
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
layout_width="match_parent"/wrap_content/100dp
layout_padding 同
//内边距
layout_margin 外边距
帧布局
约束布局
2.Activity活动
【Single Task】
每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。
全局仅一个单独的示例栈
2.1 活动的生命周期
Activity类中定义了7个回调方法,覆盖了活动生命周期的每一个环节,下面就来一一介绍这7个方法。
❑ onCreate()。这个方法你已经看到过很多次了,每个活动中我们都重写了这个方法,它会在活动第一次被创建的时候调用。你应该在这个方法中完成活动的初始化操作,比如说加载布局、绑定事件等。
❑ onStart()。这个方法在活动由不可见变为可见的时候调用。
❑ onResume()。这个方法在活动准备好和用户进行交互的时候调用。此时的活动一定位于返回栈的栈顶,并且处于运行状态。
❑ onPause()。这个方法在系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用。
❑ onDestroy()。这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。
❑ onRestart()。这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。
3、底部导航BottomNavigationView+Fragment
3.1 Fragment
- Fragment是依赖于Activity的,可以作为活动的一个UI组件嵌入,不能独立存在的,且更适用于移动端
- 一个Activity里可以有多个Fragment。
- 一个Fragment可以被多个Activity重用。
3.2 Frame Layout
link
FrameLayout的属性很少就两个,但是在说之前我们先介绍一个东西:
前景图像:永远处于帧布局最上面,直接面对用户的图像,就是不会被覆盖的图片。
两个属性:
android:foreground:*设置改帧布局容器的前景图像
android:foregroundGravity:设置前景图像显示的位置
4.Intent
4.1 显示Intent
这个构造函数接收两个参数,第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标活动,通过这个构造函数就可以构建出Intent的“意图.。
startActivity()方法,这个方法是专门用于启动活动的,它接收一个Intent参数,这里我们将构建好的Intent传入startActivity()方法就可以启动目标活动了。
4.1 向下一个活动传递数据
ntent中提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需要把这些数据再从Intent中取出就可以了。比如说FirstActivity中有一个字符串,现在想把这个字符串传递到Second-Activity中
【取值】
首先可以通过getIntent()方法获取到用于启动SecondActivity的Intent,然后调用getStringExtra()方法,传入相应的键值,就可以得到传递的数据了。这里由于我们传递的是字符串,所以使用getStringExtra()方法来获取传递的数据。如果传递的是整型数据,则使用getIntExtra()方法;如果传递的是布尔型数据,则使用getBooleanExtra()方法,以此类推。
五、ButterKnife
六、Recycler View
6.1 basequickAdpater
七、Glide
Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。
代码参考
八、网络
8.1 Retrofit
Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装
参考1
3
参考2
9.1 Rxjava 实现异步机制
十、EventBus
EventBus没出现之前,那时候的开发者一般是使用Android四大组件中的广播进行组件间的消息传递,那么我们为什么要使用事件总线机制来替代广播呢?主要是因为:
- 广播:耗时、容易被捕获(不安全)。
- 事件总线:更节省资源、更高效,能将信息传递给原生以外的各种对象。
十一、context
十二、MMKV
十三、部署django到阿里云服务器
这里用了阿里云免费试用一个月的优惠,配置如下:
1核 2GB
Ubuntu 20.04 64位
网络带宽 3M
云盘大小 40GIB
小白式操作:
- 直接进入远程连接-云助手,配置相应环境
apt update
python3 -V
pip3 install django==3.2.9
- 利用mac自带shell远程连接传输文件
put /Users/bytedance/Desktop/shop_1.zip /root
- 安装解压文件,解压对应文件
apt install unzip
- 设置django的设置文件里ALLOW_HOSTS加上当前服务器公网IP
方式1:
ALLOWED_HOSTS = [‘外网ip’,‘localhost’, ‘0.0.0.0:8000’,
‘127.0.0.1’,]
方式2:
ALLOWED_HOSTS = [’*’]
- 设置阿里云网络安全组
阿里云设置开放8080端口(安全组设置),阿里云的控制台-主机-安全组 - 启动服务
python manage.py runserver 0.0.0.0:8000
- 外网访问
Basic settings
sudo spctl --master-disable