ShoppingMall_01

======================================================================

今天开始,学习bilibili网上,编程不止Coding 老师的  Android项目实战之商城软件开发【附课件与代码】

在此向老师致以敬意

边学习,边记录,享受自学的乐趣

======================================================================

01. 欢迎界面的延时进入主界面

      ShoppingMall_01

      ShoppingMall_01

 

02. 使用 RadioGroup 做底部导航栏

     ShoppingMall_01

     ShoppingMall_01

     ShoppingMall_01

  

 03.关于黄油刀的使用

     a. butterknife的作用
         这是一个替代 findViewById 的功能;

     b. 引用资源

     ShoppingMall_01

     c. 使用

     ShoppingMall_01

 

    d. 关于黄油刀另外一个插件的说明

     ShoppingMall_01   

     这个插件是专门用来快速关联对象的插件,通过界面操作,实现bindView等相关功能;

    ***  但在我电脑中,这个插件总会引发错误,装了也没有;****************

    *** 这个插件为 2017年的产品了,那个时候使用的是 @Bind() 来达成关联,现在的Bind扩展了很多,个人推测插件报错的原因就是这个插件没有正常维护升级了,功能不匹配了 ***********

    由于这个原因,现在我是手动@BindView 来达成对象使用的;

 

04. 关于OKHttp的使用

     ShoppingMall_01

    关于OKHttp的使用,一般会在自定义的MyApplicaton中生成一个实例化对象,用于网络请求;

    ShoppingMall_01

 

 

    同时,在 AndroidManifest.xml 中进行配置    android:name=".app.MyApplication"

   关于网络请求的问题:

     ** 首先配置网络权限:   <uses-permission android:name="android.permission.INTERNET"/>

    此时发起网络请求时,将提示出错:

    ShoppingMall_01

 

    原因: 由于 Android P(版本27以上) 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。
               如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求

 

   处理方法: 1. 将请求改成 https;  

                      2. 将目标SDK版本降级为 27或以下; 

                      3. 配置参数,强开明文通讯 

                          a. 直接在 AndroidManifest.xml 中配置属性 : android:usesCleartextTraffic="true"

                          b. 新建 res>xml>network_security_config.xml 配置文件(文件名自定义),
                              ShoppingMall_01

                                  之后在 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字符串实例化为类对象; 在插件中找着了二个,经过比对,功能基本相近;

         ShoppingMall_01

         GsonFormat-plus: 可以生成的类继  Serializable 且带有注释, 且包的大小更小一些,个人更喜欢点;

        内容是集成在  Generate 菜单中的:       或者直接 Alt+S调出功能进行JSON类的生成
        ShoppingMall_01

 

        生成的类结构如下:每个成员变量都有相应的样例 (也可以在配置中进行配置,不生成注释)

        ShoppingMall_01

 

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版本开始,就不再需要安装插件了,可以直接引用 ; 

 

       ShoppingMall_01

 

07. Glide加载图片的问题(解决方法见 04. 关于OKHttp的使用)

      *** 特别注意:将之前已经安装的APP卸载后,重新安装 ***

      ShoppingMall_01

 

08. 关于开发阶段,网络数据请求的配置

     a. 本地构建 TomCat 服务;

     b. 请求地址的设置:
            ** 若使用的是 默认的安卓模拟器,则服务器地址可以配置为:  http://10.0.2.2:8080   ; 端口以自行设置的为标准;

            ** 如果使用的是第三方的模拟器,则服务器地址可以配置为:     http://192.168.8.51:8080;  IP地址以电脑的IP为标准;

     

 

 

ShoppingMall_01

上一篇:k8s-集群安全机制


下一篇:部分工具