Android Library 工程创建和使用

将公共组件或常用工具类创建一个Library工程供多个项目共享使用,这是我们在开发久了所总结出来的经验,当然网上也有很多开源项目也是类似的模式和用法。

本文着重介绍如何创建Android library,并且在工程中使用此library提供的资源,具体步骤如下:

1.创建Android library工程

110131_blMF_98452.png

a.应用名成

b.项目名称

c.包名:由于编译后,Library和引用它的project是合并在一起的,为了区分明显、使用方便,建议这里包名进行修改

d.最小SDK指向

e.目标sdk指向

 这里的设置会在AndroidManifest.xml里进行配置

113538_kGza_98452.png

f.编译sdk指向

这里的设置会在project.properties里进行配置

 114720_0WCc_98452.png

g.主题:这里选择不使用任何主题

2.将工程设置为 Library

111340_VzC9_98452.png

a.由于是library工程,所以这里不选择创建icon图标

b.选择mark this project as a library ,选择此项,会将此工程配置为library工程。

  ( 我这里选择之后,没有成功,不知道啥原因,通过project.properties可以看出是否成功.)

 如果成功,将出现如下配置:

 115419_EPr8_98452.png

 如果这里没有出现此配置,那么可以通过在项目上右键-properties,点击左边Android,右边拖动滚动条到最下面,选择Is Library ,确定则配置成功:

115641_9TCa_98452.png

此处的appcompat_V7是选择4.0以上SDK会自动继承的,这里不需要可以删除。

删除之后style.xml会报错,可以直接删除style.xml ,由于我这里不需要,同时删除,values-v11 ,values-v14 ,menu文件夹也删除。(根据自己需求进行处理)

library工程的AndroidManifest.xml不需要 application,如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lllll"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

</manifest>


3.创建默认activity类,选择相应的模板,当然也可以不创建,这里根据需求情况。

113246_gCZz_98452.png

4.创建默认activity及布局文件

113309_DQrp_98452.png

删除V7之后,默认这个类会报错,通过修改如下:

package com.example.lllll;
  
import com.example.lllll.R;
import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends  Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}


创建好Library如何使用?

  1. 创建一个普通的anroid工程,LibTest,步骤同上,不用选择library:

  2. 项目上点右键-android,右边拖到最下面,add刚才的library工程,确定,就继承成功。

    122618_cbJh_98452.png

  3. 在此可以引用Library里的类


    package com.example.libtest;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.TextView;
    
    public class MainActivity extends  Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            TextView t = (TextView) findViewById(R.id.test);
            t.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(MainActivity.this,levent.snail.core.MainActivity.class);
                    startActivity(intent);
                }
            });
        }
     
    }

    这里注意调用Library里的activity一定先要在当前工程里引用activity,否则会出现notfoundactivity,

     <activity   android:name="levent.snail.core.MainActivity"  >      </activity>


注意:SDK在编译时候,会把Library和引用它的project进行合并,为了避免重名引起的问题,需要对library里的资源进行重命名。


转载于:https://my.oschina.net/NTCCRPzhrah1P/blog/531245

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值