• Android开源client之LookAround学习(一)Application & 网络框架


    之前看过开源clientLookAround(下载地址:http://download.csdn.net/detail/hualulove/7306807),链接:http://blog.csdn.net/lancees.

    对其源代码的分析分析例如以下。

    1 LookAround Application

    自己定义Application。用于全局都用到的变量或者全局都进行的处理。LookAround的自己定义Application,保存了登录状态、登录后的数据、软件是否更新等全局变量,做了第三方统计工具友盟还有ShareSDK的事情。

    2 LookAroundclient网络请求框架:


    用户界面得到请求的对象,进行数据打包,通常是将对象转变为JSON格式,同一时候传入回调处理接口。网络层通过HttpClient向server发送请求,一般为异步请求。请求返回后,将返回的JSON数据转化为对象,最后回调之前传入的处理接口,用户界面得到请求结果返回。

    LookAround的Http Client使用的是开源库android-anyc-http.jar,Http Client为AsyncHttpClient。AsyncHttpClient这里要求传入的參数不是JSON数据,而是类RequestParams,RequestParams的创建函数为:RequestParams(Map<String, String> source)

    这里以登录包处理为例,例如以下:

       public static class UserLogin extendsAbstractBaseProtocol {

          public final static String KEY_CONN ="conn";

          public final static String KEY_MODEL ="model";

          public final static String KEY_TELCO ="telco";

          public final static String KEY_OSVER ="osver";

          public final static String KEY_VER ="versioncode";

          public String mConn = "";

          public String mModel = "";

          public String mTelco = "";

          public String mOsver = "";

          public String mVer = "";

          @Override

          publicMap<String, String> toStringMap() {

             super.toStringMap();

             mapValue.put(KEY_CONN,mConn);

             mapValue.put(KEY_MODEL,mModel);

             mapValue.put(KEY_TELCO,mTelco);

             mapValue.put(KEY_OSVER,mOsver);

             mapValue.put(KEY_VER,mVer);

             return mapValue;

          }

       }

    当中AbstractBaseProtocol为自己定义的基本协议头抽象类,其定义例如以下:

    public abstract class AbstractBaseProtocol implementsIToStringMap{

       public Map<String,String>mapValue =newHashMap<String, String>();

      

       public final static String KEY_KEYS ="keys";

       public final static String KEY_TIMESTAMP ="timestamp";

       public final static String KEY_SIGN ="sign";

       public final static String KEY_STD ="std";

       public String mKeys = "";

       public String mTimeStamp = "";

       public String mSign = "";

       public String mStd = "";

      

       @Override

       public Map<String,String> toStringMap() { 

          mapValue.put(KEY_KEYS,mKeys);

          mapValue.put(KEY_TIMESTAMP,mTimeStamp);

          mapValue.put(KEY_SIGN,mSign);

          mapValue.put(KEY_STD,mStd);

          return mapValue;

       }

    }

    在构造RequestParams时,使用UserLogin实例toStringMap()就可以,例如以下:

    RequestParams param =new RequestParams(mUserLogin.toStringMap());

    LookAround创建了一个ClientEngine的类,用于连接处理用户请求和网络层。解析返回的JSON数据是,使用的是Android自带的org.json.*包下JSON相关类。具体的可见源代码。整体来说,框架比較清晰。

     


  • 相关阅读:
    关于Synchronized(一)
    关于Spring——事务(三)
    B2B、B2C、C2C、O2O、P2C、P2P
    《疯狂的程序员》读后有感
    祝贺拿到Offer
    软件测试中一般术语的英文和缩写
    笔试题目
    笔试题
    编码
    IO包中的其他类 打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4359958.html
Copyright © 2020-2023  润新知