Android快速开发之appBase——(1).appBase介绍「建议收藏」

转载请注明本文出自JFlex的博客(http://blog.csdn.net/jflex/article/details/46430555),请尊重他人的辛勤劳动成果,谢谢!Android快速开发之appBase——(1).appBase介绍一直想写博客,苦于自己的文笔实在不行,在CSDN潜水了好几年,中间差不多3年没有写过博客。原因有二:1、文笔差;2、没时间。今年开始,时间充裕了,开始计划练练

大家好,又见面了,我是你们的朋友全栈君。

转载请注明本文出自JFlex的博客http://blog.csdn.net/jflex/article/details/46430555,请尊重他人的辛勤劳动成果,谢谢!

Android快速开发之appBase——(1).appBase介绍

一直想写博客,苦于自己的文笔实在不行,在CSDN潜水了好几年,中间差不多3年没有写过博客。原因有二:1、文笔差;2、没时间。
今年开始,时间充裕了,开始计划练练自己的文笔,也让自己成长起来,希望从中能够提升自己的能力。望大家多多支持和关注!!

导读:appBase是什么?

appBase是一个Android app开发的基础集合,目的是任何应用都可以在这个基础之上开发app,省去了搭建框架的时间。
appBase=xutils+fastjson+avlib

  • xutils使用了其中HttpUtils、BitmapUtils、DbUtils
  • fastjson使用了json解析
  • avlib大家比较陌生,这个库是我另外一个简单的工具库。主要功能是View的自动绑定、View的常用数据自动绑定、万能Adapter等

目的:是为了让懂java的同学能够快速上手Android开发。

下面,看代码说话。(^__^)


一、看看框架结构

框架结构
– apicloud.sdk是对apicloud的云API的调用做了简单封装
– base:只包含BaseActivity
– http:基于HttpUtils简化了常用的网络请求,定义网络参数APIs的配置
– presenter:采用了MVP中的P来命名,可以让非UI处理业务抽出放到这个结构中,因此BasePresenter诞生了。
– util:常用的工具类
– widget:常用的自定义组件(待扩展)
– Application:继承android.app.Application,为了统一使用框架中的组件对象,避免了组件的重复创建。因此建议使用这个类配置application的name。当然也可以基于此类扩展。

二、创建一个新项目

  • 第一步:创建一个空的Android project
    图片
    注意:删除自动添加的android-support-v4.jar(appBase中包含有)
  • 第二步:引用appBase
    图片
  • 第三步:修改AndroidManifest.xml

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.snicesoft.appbase.demo" android:versionCode="1" android:versionName="1.0" >
    
    <uses-sdk  android:minSdkVersion="8" android:targetSdkVersion="21" />
    
    <application  android:allowBackup="true" android:name="com.snicesoft.Application" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
    </application>
    </manifest>

    添加:android:name=”com.snicesoft.Application”

  • 第四步:创建Activity

    package com.snicesoft.appbase.demo;
    import com.snicesoft.avlib.annotation.Layout;
    import com.snicesoft.avlib.rule.IData;
    import com.snicesoft.avlib.rule.IHolder;
    import com.snicesoft.base.BaseActivity;
    @Layout(R.layout.activity_main)
    public class MainActivity extends BaseActivity<MainActivity.Holder, MainActivity.Data> { 
         
        public class Holder extends IHolder { 
         
    
            @Override
            public void initViewParams() {
    
            }
    
        }
    
        public class Data extends IData { 
         
    
        }
    
        @Override
        public Data newData() {
            return new Data();
        }
    
        @Override
        public Holder newHolder() {
            return new Holder();
        }
    }
    

    看着class一栏,大家可能会花了眼,怎么这么长。这只是一种写法,推荐的写法(内部类)。我来说明下这个类:

    IHolder是指View自动绑定的容器

    IData是指View的数据自动绑定容器

  • 第五步:使用IHolder和IData

    package com.snicesoft.appbase.demo;
    import com.snicesoft.avlib.annotation.DataBind;
    import com.snicesoft.avlib.annotation.Id;
    import com.snicesoft.avlib.annotation.Layout;
    import com.snicesoft.avlib.rule.IData;
    import com.snicesoft.avlib.rule.IHolder;
    import com.snicesoft.base.BaseActivity;
    @Layout(R.layout.activity_main)
    public class MainActivity extends BaseActivity<MainActivity.Holder, MainActivity.Data> { 
         
        public class Holder extends IHolder { 
         
            @Id(R.id.textView1)
            TextView textView1;
            @Id(R.id.button1)
            Button button1;
            @Override
            public void initViewParams() {
    
            }
    
        }
    
        public class Data extends IData { 
         
            @DataBind(id = R.id.textView1)
            String tv1 = "我是自动绑定的TextView";
            @DataBind(id = R.id.button1)
            String btn1 = "我是自动绑定的Button";
        }
    
        @Override
        public Data newData() {
            return new Data();
        }
    
        @Override
        public Holder newHolder() {
            return new Holder();
        }
    }
    

    运行结果
    图片

这个只是简单的avlib的view和数据自动绑定功能。后续在介绍其他功能的使用。
最后附上代码生成器源码:http://download.csdn.net/detail/englishbage/8789869

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124579.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 设计模式 – 适配器模式(adapter pattern) 具体解释「建议收藏」

    设计模式 – 适配器模式(adapter pattern) 具体解释

    2022年1月26日
    43
  • 一文概括常用图像处理算法

    一文概括常用图像处理算法本文总结了11种常用的图像处理算法,包含了预处理算法以及检测算法,并介绍了一些常用的开发库。一、算法(预处理算法、检测算法)在采集完图像后,首先会对图像进行预处理操作。1、图像变换(空域与频域、几何变换、色度变换、尺度变换)2、图像增强3、纹理分析(取骨架、连通性)4、图像分割5、图像特征6、图像/模板匹配7、色彩分析8、图像数据编码压缩和传输9、表面缺陷目标识别算法10、图像分类(识别)11、图像复原二、现有的视觉检测软件/库三、HSV颜色识别-HSV基本颜色分量范围

    2022年5月13日
    49
  • Android系统签名以及生成keystore秘钥

    Android系统签名以及生成keystore秘钥Android11系统签名以及keystore一、什么是系统签名Android下所有APP都要进行签名,而有些权限,只有系统签名了的APP可以拥有。而且需要在APP的AndroidManifest中添加以下IDandroid:sharedUserId=”android.uid.system”二、使用signapk.jar签名2.1找到对应文件(1)在根目录下创建keystore文件夹以方便工作(2)查找密钥和证书build/target/product/security/plat

    2022年6月21日
    83
  • 程序员垃圾简历长什么样?

    程序员垃圾简历长什么样?已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份这篇文章会用实例告诉你,什么是差的程序员简历!疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》一石激起千层浪,三天收到两百多封简历。花光了两个星期的所有空闲时…

    2022年5月21日
    39
  • linux下增加路由_centos开启路由转发

    linux下增加路由_centos开启路由转发一、环境介绍1.linux版本:CentOS6.8,CentOS7.2两台主机分别加载两块网卡,分别作为路由器的两个端口2.实验在vmware虚拟机中完成3.另有两台CentOS6.8和CentOS7.2作为两个网段的主机4.实验图示:二、路由1(左)和路由2(右)的设置1.路由1配置信息eth0网卡:DEVICE=eth0IPADDR=10.0.0.1PREFIX=9eth1网卡:DEVICE=…

    2022年9月27日
    2
  • ICMP报文详解

    ICMP报文详解概述ICMP允许主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。通常ICMP报文被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。ICMP报文的格式类型:占8位代码:占8位检验和:占16位说明:ICMP所有报文的前4个.

    2022年6月11日
    513

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号