开源 java android app 开发(十二)封库.aar

文章的目的为了记录使用java 进行android app 开发学习的经历。本职为嵌入式软件开发,公司安排开发app,临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

相关链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

本章节主要内容是如何进行打包封库,在Android 开发中,经常遇到两种情况:1.需要简化流程提高编译速度,将部分不需要修改的代码进行打包。2.需要提供第三方开发的SDK,保证对方能使用源码的情况同时又看不到源码。在这两种情况中就需要对源码进行打包封库来实现。

本章内容如下:

1 使用源码制作.aar库文件。

2 在测试程序中引入.aar文件进行验证。

一、制作.aar文件

1.1 使用工程创建module

选择Library

给库命名

1.2 在module中创建Class文件

最后创建2个类

AddFun源码

复制代码
ackage com.example.mylib;

import android.app.Activity;

public class AddFun extends Activity {
    public  int Add (int a,int b)
    {
        return  a+b;
    }
}

MulFun源码

复制代码
package com.example.mylib;

import android.app.Activity;

public class MulFun extends Activity {
    public  int Mul(int a,int b)
    {
        return  a*b;
    }
}

1.3 修改build.gradle文件,minifyEnable需要改为true,库文件编译后才能看不见源码。

1.4 编译生成 .arr库文件

二、在测试文件中调用库文件

2.1 修改app文件夹的build.gradle文件

2.2 进行同步

2.3 测试工程中 MainActivity.java的源码

复制代码
package com.example.myapplication;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

import com.example.mylib.AddFun;
import com.example.mylib.MulFun;

import org.eclipse.paho.client.mqttv3.IMqttActionListener;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.IMqttToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttMessage;

public class MainActivity extends AppCompatActivity {



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

        AddFun tmp = new AddFun();
        int a = tmp.Add(3,4);

        MulFun tmp1 = new MulFun();
        int b = tmp1.Mul(3,4);

        Log.d("AddFun:", String.valueOf(a));
        Log.d("MulFun:", String.valueOf(b));
    }
}

2.4 最终运行的结果,myLib.arr库的功能得到验证

相关推荐
我命由我1234514 分钟前
Android Studio - Android Studio 自定义预览尺寸
android·java·ide·java-ee·android studio·android-studio·android runtime
咖啡八杯1 小时前
GoF设计模式——迭代器模式
java·后端·设计模式·迭代器模式
AIGS0011 小时前
企业AI落地的关键认知:向量空间JBoltAI的本体语义平台
java·人工智能·人工智能ai大模型应用
KaMeidebaby2 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
取个名字太难了~2 小时前
越用越便宜,越用越强大:影像 SDK 的边际成本递减与网络效应实践
android·数码相机·美颜·相机连接·demu
RisunJan3 小时前
Linux命令-rlogin(远程登录)
linux·运维
醉城夜风~4 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)
java·开发语言·算法
龙亘川4 小时前
开源本地 AI 智能体网关 OpenClaw 深度实践:架构解析、全场景部署与自动化落地指南
人工智能·架构·开源·openclaw
数智化转型推荐官5 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互5 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维