【移动开发】Android中将我们平时积累的工具类打包
Android开发的组件打包成JAR安装包,通过封闭成JAR包,可以重复利用,非常有利于扩展和减少工作重复性。这里为了讲解方便,我用了之前的一个代码框架中核心部分,不了解的可以回头看一下:http://smallwoniu.blog.51cto.com/3911954/1324842
这里需要说明一下,一般,不需要打入jar包的文件有:
1、/src/目录下的activity文件
2、根目录下的文件,.classpath, .project, manifest.xml, .properties, .cfg等
3、/bin/目录下的文件,如:manifest.xml, .dex, .apk, resources.ap_等
4、/bin/res目录
5、/res/drawable 相关的目录
6、/res/layout/ 目录
7、/res/menu/ 目录
第一步:删除Activity,右击项目-->导出。
第二部:只勾选src即可。
第三步,点击Finish,桌面上就生成了一个名为Android的Jar包。
下面我们就可以像使用其他JAR文件一样使用我们自己的自定义框架包了。下面给出本代码框架的一个小DEMO介绍如何使用这个JAR包。
1.新建文件夹lib,将jar 包放入。
2.关联导入的Android.jar.
3.点击Add JARS ,选择完成即可。
使用规则:
1.首先,为了完整使用框架,我们需要将一些辅助类添加进去,不清楚的可以看框架讲解的那篇(http://smallwoniu.blog.51cto.com/3911954/1324842)。
2.程序入口MainActivity:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
public class MainActivity extends Activity implements IActivity{ public Button mBtnLogin; //登陆按钮:测试代码框架是否运行正常 public TextView mTvLogin; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); //1.将要执行任务的Activity,加入到集合中 MyApplication.allActivity.add( this ); this .mBtnLogin = (Button) findViewById(R.id.button1); this .mTvLogin = (TextView) findViewById(R.id.textView1); mBtnLogin.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { //2.产生任务:对应填入参数 Task task = new Task(TaskID.MANAGER_LOGIN, "框架测试成功!!" , "---登陆任务----" ); //3.将当前任务加入到写好的线程池中() MyApplication.poolManager.addTask(task); } }); } @Override public void init() { // TODO Auto-generated method stub } @Override public void refresh( Object ... params) { //接收线程处理过后返回的数据 mTvLogin.setText(params[ 0 ].toString()); } } |
到此,完成了打包的讲解,比较简单,好久没写博客了手有点生疏,希望可以帮助到大家!
本例中所使用的框架Demo 和 最终完整使用的Android.jar的Demo下载地址:http://down.51cto.com/data/1092550
本文出自 “狂奔的蜗牛” 博客,请务必保留此出处http://smallwoniu.blog.51cto.com/3911954/1365339
【移动开发】Android中将我们平时积累的工具类打包的更多相关文章
- Android开发之封装log打印日志的工具类,实用logutils详细代码
public final class LogUtil { /** all Log print on-off */ private final static boolean all = true; /* ...
- iOS开发拓展篇—封装音频文件播放工具类
iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...
- Android PermissionUtils:运行时权限工具类及申请权限的正确姿势
Android PermissionUtils:运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6 Permis ...
- android开发时间和日期的代码实现工具类(一)
android开发时间和日期工具类的代码实现: package com.gzcivil.utils; import android.annotation.SuppressLint; import an ...
- Android开发之使用Handler封装下载图片工具类(源码分享)
假设每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时能够调用. (1)在清单文件加入权限 <us ...
- Android开发学习之路-Palette颜色提取工具类使用
视频(要FQ):https://www.youtube.com/watch?v=5u0dtzXL3PQ Palette是一个在support-v7包中的一个颜色提取工具类,用法比较简单,而且是谷歌官方 ...
- 【Android代码片段之六】Toast工具类(实现带图片的Toast消息提示)
转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/6841266 作者:张燕广 实现的Toast工具类ToastUtil封装 ...
- iOS开发 -- 为本地文件添加自定义属性的工具类
前言:实际开发,我们可能会有这样的需求,就是为文件添加自定义的属性,或者是可以将文件的相关信息添加进该文件的属性中,这样可以以备下次读取利用. 那么本文就是要介绍"拓展文件属性的工具类&qu ...
- android的Log日志打印管理工具类(一)
android的Log日志的打印管理工具类: package com.gzcivil.utils; import android.util.Log; /** * 日志打印管理 * * @author ...
随机推荐
- javascript基础学习(十四)
javascript之表单对象 学习要点: 表单对象 文本框 按钮 单选框和复选框 一.表单对象 在HTML文档中可能会出现多个表单,也就是说,一个HTML文档中可能出现多个<form>标 ...
- 【POJ1753】Flip Game
[题目大意] 有一个4x4规格的一个棋盘,现在有16个一面黑一面白的棋子分布在这个棋盘上. 翻转一个棋子能够使它以及它上下左右的四个棋子从黑变白,从白变黑. 现在问你至少要经过多少次操作才能够使得整个 ...
- date命令详解与练习
date : 用来打印或设置系统日期和时间. 它在linux shell编程中经常会用到.比如每天生成随日期变化的档案名,尤其在银行业务中每天都会生成流水文件.eg:datefile=$(date & ...
- C++ Primer 5th 第11章 关联容器
练习11.1:描述map 和 vector 的不同. map是关联容器,vector是顺序容器,关联容器与值无关,vector则与值密切相关 练习11.2:分别给出最适合使用 list.vector. ...
- 破解Inode客户端使用笔记本共享WIFI
由于住在学校的公寓里面,所以使用的是校园网,但是校园网限制了无线的使用,强制所有网络用户使用INode网络客户端,这个客户端不但很丑很难看,而且每天联网十分费劲,费了半天的力气终于联上网了,可是一眨眼 ...
- Linux 下安装Python框架django建立与mysql的连接
0.基本环境说明: a. Ubuntu 14.04 64bit b. python 2.7.6 c. django 1.8 d. django-registration e. django-widge ...
- a标签的 target 使用
<a target="_blank" href="www.baidu.com" onclick="return test()"> ...
- Rectangle 响应按键
import QtQuick 2.4 import QtQuick.Window 2.2 Window { visible: true MainForm { anchors.fill: parent ...
- fpdf使用標楷體
<? require('chinese-unicode.php'); $pdf=new PDF_Unicode(); $pdf->Open(); $pdf->AddPage(); $ ...
- C++编程中对缓冲区的理解(OS默认4096大小的缓冲区,有例子,很形象)
什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分.也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区.缓冲区根据其对应的是输入设备还是输出 ...