======================================================================
今天开始,学习bilibili网上,编程不止Coding 老师的 Android项目实战之商城软件开发【附课件与代码】
在此向老师致以敬意
边学习,边记录,享受自学的乐趣
======================================================================
01. 欢迎界面的延时进入主界面
02. 使用 RadioGroup 做底部导航栏
03.关于黄油刀的使用
a. butterknife的作用
这是一个替代 findViewById 的功能;
b. 引用资源
c. 使用
d. 关于黄油刀另外一个插件的说明
这个插件是专门用来快速关联对象的插件,通过界面操作,实现bindView等相关功能;
*** 但在我电脑中,这个插件总会引发错误,装了也没有;****************
*** 这个插件为 2017年的产品了,那个时候使用的是 @Bind() 来达成关联,现在的Bind扩展了很多,个人推测插件报错的原因就是这个插件没有正常维护升级了,功能不匹配了 ***********
由于这个原因,现在我是手动@BindView 来达成对象使用的;
04. 关于OKHttp的使用
关于OKHttp的使用,一般会在自定义的MyApplicaton中生成一个实例化对象,用于网络请求;
同时,在 AndroidManifest.xml 中进行配置 android:name=".app.MyApplication"
关于网络请求的问题:
** 首先配置网络权限: <uses-permission android:name="android.permission.INTERNET"/>
此时发起网络请求时,将提示出错:
原因: 由于 Android P(版本27以上) 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。
如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求
处理方法: 1. 将请求改成 https;
2. 将目标SDK版本降级为 27或以下;
3. 配置参数,强开明文通讯
a. 直接在 AndroidManifest.xml 中配置属性 : android:usesCleartextTraffic="true"
b. 新建 res>xml>network_security_config.xml 配置文件(文件名自定义),
之后在 AndroidManifest.xml 中配置网络安全参数: android:networkSecurityConfig="@xml/network_security_config"
** 如果按上面的方法配置后,仍不能请求网络,请先卸载之前未配置过的APP,之后再重新安装配置过明文通讯的APP
05 关于json的处理
a. 这里使用的是 阿里的 FastJson;(网上有些资料使用的是 android版本,有些直接使用 fastjson, 当前 Marven*库中,只找到了 FastJson, 没找着android版本,或许是我搜的条件不对)
implementation ‘com.alibaba:fastjson:1.2.78‘
b. 有了JSON,再次安装了 GsonPlugin , 用来快速的将JSON字符串实例化为类对象; 在插件中找着了二个,经过比对,功能基本相近;
GsonFormat-plus: 可以生成的类继 Serializable 且带有注释, 且包的大小更小一些,个人更喜欢点;
内容是集成在 Generate 菜单中的: 或者直接 Alt+S调出功能进行JSON类的生成
生成的类结构如下:每个成员变量都有相应的样例 (也可以在配置中进行配置,不生成注释)
06 关于lombok插件
在IDEA 2021.2 版本中,居然搜不到 Lombok插件,查官网资料得知:
The Jetbrains IntelliJ IDEA editor is compatible with lombok without a plugin as of version 2020.3.
也就是说,从IDEA2020.3版本开始,就不再需要安装插件了,可以直接引用 ;
07. Glide加载图片的问题(解决方法见 04. 关于OKHttp的使用)
*** 特别注意:将之前已经安装的APP卸载后,重新安装 ***
08. 关于开发阶段,网络数据请求的配置
a. 本地构建 TomCat 服务;
b. 请求地址的设置:
** 若使用的是 默认的安卓模拟器,则服务器地址可以配置为: http://10.0.2.2:8080 ; 端口以自行设置的为标准;
** 如果使用的是第三方的模拟器,则服务器地址可以配置为: http://192.168.8.51:8080; IP地址以电脑的IP为标准;