从一个博客中学习的方法,很实用。
+++++++++++++++++UPDATE++++++++++++++++++UPDATE+++++++++++++++++++++UPDATE+++++++++++++++++++++++++++++++++++++UPDATE
时隔很久了,因为项目中一直认为这个是个瓶颈,导致本来可以放在一个AP里面的东西要写成两个AP,所以我又回来看了这个问题,这次我想到了在android源码中是不是有AP用过jar包,那我学习它不就好了?
所以我在Ubuntu下搜索package/app目录: find -name '*.jar'
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_STATIC_JAVA_LIBRARIES := libarity
- LOCAL_SRC_FILES := $(call all-java-files-under, src)
- LOCAL_PACKAGE_NAME := TestJar
- include $(BUILD_PACKAGE)
- ##################################################
- include $(CLEAR_VARS)
- LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libarity:lily.jar
- include $(BUILD_MULTI_PREBUILT)
- # Use the folloing include to make our test apk.
- include $(call all-makefiles-under,$(LOCAL_PATH))
关键在于
LOCAL_STATIC_JAVA_LIBRARIES := libarity
和
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libarity:lily.jar
其实libarity是个名字可以随便取,但是两个属性的值要一样就好了,但是后面那个冒号里面就一定要写你的jar包名,你的jar包一定放在工程的根目录就好了,目录结构如下:
-res
-src
android.mk
AndroidManifest.xml
default.properties
lily.jar
如上路径
最后再贴上代码吧
JAR包的代码:
Lily.java
- package com.ianc.jar;
- public class Lily {
- String name;
- public void setName(String name) {
- this.name = name;
- }
- public Lily() {
- super();
- }
- public Lily(String name) {
- super();
- this.name = name;
- }
- public String getName(){
- return "lily";
- }
- }
用Eclipse-->export-->选中JAVA里面的JAR file这项,然后一路next就可以生成JAR包
测试工程的简单代码(TestJar.java):
- package com.ianc.testjar;
- import android.app.Activity;
- import android.os.Bundle;
- import com.ianc.jar.Lily;
- public class TestJar extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Lily l = new Lily("lily");
- String result = l.getName();
- this.setTitle(result);
- }
- }