library project和普通的project没有区别.用如下命令新建的一个工程.

android create project --target 3 --name MyActivity --path ./MyLib --activity MyActivity --package edu.cgxy.mylib

在project.properties中添加

android.library=true

这行代码标记了这个工程是library,可以被别的工程引用.

定义一个View.代码如下:

public class MyView extends View {
private Paint paint = new Paint();
public MyView(Context context) {
super(context);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
paint.setColor(Color.GREEN);
canvas.drawRect(0, 0, 200, 200, paint);
}
}

这个View很简单.画一个绿色的正方形.

用如下命令编译.

ant debug

再建一个project来引用这个library project.命令如下:

android create project --target 3 --name MyActivity --path ./MyApp --activity MyActivity --package edu.cgxy.myapp

在project.properties中添加如下代码

android.library.reference.1=../MyLib

表示引用上个library project.

下面代码使用上面的library project.

public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
}

用如下命令编译.

ant debug

可以生成apk.

为了帮助理解整个过程.上面整个过程用的命令行.下面讨论如何把上面的2个工程导入idea中.

1.用idea新建一个project.

2.点File-Import module选中MyLib,之后再选"Create module from existing sources",之后一路下一步可以导入成功.

3.选中MyLib.按F4,打开Project structure.选中Modules,选中MyLib,选中下面的Android,再勾选上面的Library module

4.用和第2步相同的方法导入MyApp

5.选中MyApp.按F4,打开Project structure.选中Modules,选中MyApp,再选右边的Dependencies,点添加,选Module dependency,把MyLib增加进去.

这样就可以在idea中运行.

参考资料:.

http://developer.android.com/tools/projects/projects-cmdline.html

android学习16——library project的使用的更多相关文章

  1. Android 创建Library Project(库项目)与引用操作

    由于在开发过程,为了实现未曾了解的某种效果与特定功能,而求助于网上优秀的开源项目,在使用过程中发现引用开源的Library Project(库项目),的确可以解决很多问题,而且也给出了一种思路,好的软 ...

  2. Android Library Project 使用问题总结

    1. 当新建Android Library Project 工程或将已有工程转化为Android Library Project, 如果工程源代码中有如下语句: int id = view.getId ...

  3. 解决android引用library project错误

    在andriod项目中引用另一个library project时,报 The container 'Android Dependencies' references non existing libr ...

  4. How to create jar for Android Library Project

    http://stackoverflow.com/questions/17063826/how-to-create-jar-for-android-library-project This works ...

  5. Android 引用library project

    1.如何将一个android工程作为库工程(library project) library project是作为jar包被其它android工程使用的,首先它也是普通的android工程.然后: 1 ...

  6. 解决windows下eclipse中android项目关联android library project

    关于 在项目中导入 关联 library project 的问题,有时候会出现如下状况 在windows系统下,library project必须和project处于相同的盘符中 如果在不同盘符,pr ...

  7. Android Design Support Library: 学习CoordinatorLayout

    简述 CoordinatorLayout字面意思是"协调器布局",它是Design Support Library中提供的一个超级帧布局,帮助我们实现Material Design ...

  8. Android学习之Design Support Library中TextInputLayout的使用

    今天学习了一个Android Design Support Library 中的TextInputLayout控件,感觉还不错,较之以往的Editetxt,多了几分灵活性,使用也非常easy,故此给大 ...

  9. 转:解决windows下eclipse中android项目关联android library project失败问题

    近日,在做一个人人的第三方小项目.打算直接使用renren 的sdk 进行开发.因为renren的sdk是以android library project 形式发布的(关于这种project的内容可以 ...

随机推荐

  1. 微信小程序问题2:未配置

    app.json 中未配置当前页面 pages/swipertest/swipertest 请检查后重试.console.error(`PAGE DEFINE ERRORapp.json 中未配置,当 ...

  2. Object修改链表

    以前学习过链表的时候由于类型的接收不同,每次要重写链表 下面修改可用链表 class Link{ private class Node{ private Object data ; private N ...

  3. JDK8新特性面试

    java8:http://ifeve.com/java-8-features-tutorial/ 一.Lambda表达式和函数式接口 Lambda表达式(也叫做闭包) 它允许我们将一个函数当作方法的参 ...

  4. eclipse-ee修改字体大小和配置Tomcat服务器

    参考博客:http://blog.csdn.net/lpftobetheone/article/details/17783791 一.EclipseEE背景色和字体的修改 1.Eclipse背景颜色修 ...

  5. iOS 之 线性布局

    本来想自己写一个线性布局的类,看来不用了 ,网上已经有了,我先试试好不好用. https://github.com/youngsoft/MyLinearLayout 线性布局MyLinearLayou ...

  6. spark 1.6 idea本地运行错误

    将spark maven更新至1.6,运行原有程序,发现以下错误: java.lang.IllegalArgumentException: System memory must be at least ...

  7. eclipse中创建类和方法自动注释

    <?xml version="1.0" encoding="UTF-8"?><templates><template autoin ...

  8. KNN算法--物以类聚,人以群分

    KNN(K Nearest Neighbors,K近邻 )算法是机器学习所有算法中理论最简单,最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值之间的距离,然后选取K(K>= ...

  9. 属性(Attribute)资源

    前面已经介绍过自定义View组件的开发,自定义View组件与Android系统提供的View组件一样,即可在Java代码中使用,也可在XML界面布局代码中使用. 当在XML布局文件中使用Android ...

  10. ThinkPHP创建应用的一般开发流程

    使用ThinkPHP创建应用的一般开发流程是: 系统设计.创建数据库和数据表:(可选) 项目命名并创建项目入口文件,开启调试模式: 完成项目配置: 创建项目函数库:(可选) 开发项目需要的扩展(模式. ...