Android入门

276 阅读2分钟

前言

作为web/h5开发的我,使用了uniapp开发过程中,使用了原生插件 面审和活体检测
最初原生插件为另外一个公共小组提供,在后续的维护中 两个原生插件 改动比较小,又有部门组织架构的调整,我们与公共小组沟通愈加困难,于是自学了android,在后续维护中自己能够独立定位一些问题。

学习步骤

以下是我学习的步骤

jetpack

常用库

  • 网络 有系统自带的URLConnection和HttpClient;还有开源的框架,比如Volley ,Xutils,OK3、retrofit2等。
  implementation 'com.squareup.okhttp3:okhttp:3.11.0'
  implementation 'com.squareup.retrofit2:retrofit:2.4.0'
  implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
ApiBuilder builder=new ApiBuilder()
                        .Url("car")//这里填根Url后的部分
                        .Headers("token",value)//请求头 键,值
                        .Params("key",value)//请求参数 键,值
                        .Params("key",value);//参数可以有多个
ApiClient.getInstance().doGet(builder,new CallBack<BeanClass>(){
            //BeanClass为解析接口数据得到的实体类
            @Override
            public void onResponse(BeanClass data) {
                if (data.isSuccess()){ //获取接口数据成功
                     //请求体处理
                }else {
                    //请求失败处理 Activity.this为当前活动.this                                          
                    Toast.makeText(Activity.this,data.getMsg(),Toast.LENGTH_SHORT).show();
                }
            }
 
            @Override
            public void onFail(String msg) {
                Toast.makeText(Activity.this,msg,Toast.LENGTH_SHORT).show();
            }
        }, BeanClass.class, this);


HashMap<String,Integer>map=new HashMap<>();
map.put("model_id",mode);//向服务器提交的信息
JSONObject object=new JSONObject(map);#HashMap转JSONObject对象
String str=object.toString();#转换成JSON字符串
RequestBody body=RequestBody.create(MediaType.parse("application/json;charset=UTF-8"),str);#创建请求体,create第一个参数是请求头及编码格式,第二个参数是JSON字符串

ApiBuilder builder=new ApiBuilder()
                      .Url(StringConstant.POST_MODEL)
                      .Headers("Content-Type","application/json")
                      .Body(body);
ApiClient.getInstance().doPost(builder, new CallBack<PostCodeBean>() {
    @Override
    public void onResponse(PostCodeBean data) {
        if (data.getRes()==0){
            Toast.makeText(getContext(),"设置成功",Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(getContext(),"设置失败",Toast.LENGTH_SHORT).show();
 
        }
    }
    @Override
    public void onFail(String msg) {
        System.out.println(msg);
    }
},PostCodeBean.class,getContext());

Gradle命令

  • gradlew build
  • gradlew assembleRelease

Gradle build脚本使用Groovy编写,Groovy基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性

工具

  • 抓包工具 charles、Wireshark、fiddler、stream
  • 异常捕获 firebase

证书

  • .key 私钥,与证书配对
  • .csr 请求文件,证书颁发机构使用其根证书私钥签名生成的证书公钥文件
  • .cer 可将多级证书导入生成包含完整证书链的证书
  • .mobileprovision 证书描述文件
  • .p12 同时包含证书和私钥,一般有密码保护
  • .keystore 同时包含证书和私钥,keytool生成
  • .jks android studio生成的签名证书文件

收获

欢迎关注我的前端自检清单,我和你一起成长