開源 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 {@Overrideprotected 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庫的功能得到驗證

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84549.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu + nginx 1.26 + php7.4 + mysql8.0 調優

服務器配置 8核 16G 查看內存 free -h nginx配置 worker_processes auto; # 自動檢測CPU核心數 worker_rlimit_nofile 65535; # 提高文件描述符限制 ? events {worker_connections 8192; # 每個worker的最大連接數multi_accept on; # 一次性接受…

[未驗證]abaqus2022 更改內置python

如何在 Abaqus 2022 中更改內置 Python 在 Abaqus 中,Python 是常用的腳本語言,它使得用戶能夠自動化模型的創建、分析和后處理。可能有時候你需要更改默認的 Python 版本,比如使用特定庫或者功能。本文將為您詳細說明如何在 Abaqus 2022 中更…

RAG文檔解析難點2:excel數據“大海撈針”,超大Excel解析與精準行列查詢指南

寫在前面 在構建檢索增強生成(RAG)應用時,Excel文件是不可或缺的數據源。它們通常包含了企業運營、市場分析、科學研究等各個領域的寶貴數據。然而,當這些Excel文件變得“超大”——可能包含數十萬甚至數百萬行數據時,傳統的解析方法和RAG數據處理流程將面臨嚴峻的內存、…

深度掌控,智啟未來 —— 基于 STM32F103RBT6 的控制板

在科技浪潮奔涌向前的時代,電子領域的創新發展從未停歇。對于電子工程師、科研工作者以及電子技術愛好者,在校電子專業學生而言,一款性能卓越、功能全面且穩定可靠的開發板,是探索電子世界奧秘、實現創意構想的關鍵基石。今天&…

什么樣的登錄方式才是最安全的?

目錄 一、基礎協議:HTTP與HTTPS HTTP協議 HTTPS協議 二、常見Web攻擊與防御 2.1 XSS 常見攻擊手段 針對XSS 攻擊竊取 Cookie 2.2 CSRF CSRF攻擊的核心特點 與XSS的區別 常見防御措施 三、疑問解答 四、登錄方式演變 4.1 方案一🐶狗都不用 …

android studio底部導航欄

實現底部導航欄切換 將java文件return的xml文件賦值給頁面FrameLayout控件 java文件BottomNavigationView,監聽器setOnNavigationItemSelectedListener MainActivity.java代碼 package com.example.myapplication;import android.os.Bundle;import androidx.appc…

vue-router相關理解

一、前言 隨著 Vue.js 在前端開發中的廣泛應用,Vue Router 成為了 Vue 官方推薦的路由管理器。它不僅支持單頁面應用(SPA)中常見的路由跳轉、嵌套路由、懶加載等功能,還提供了導航守衛、動態路由等高級特性。 本文將帶你深入了解…

uni-app 自定義路由封裝模塊詳解(附源碼逐行解讀)

🚀uni-app 自定義路由封裝模塊詳解(附源碼逐行解讀) 📌 請收藏 點贊 關注,獲取更多 uni-app 項目實用技巧! 在實際 uni-app 項目中,我們常常需要對 uni.navigateTo、uni.switchTab 等 API 做…

QML顯示圖片問題解決辦法

以前用qtwediget的時候,好像是放在qlabel或者什么組件上面,把圖片的路徑放上去就可以直接加載,但我用QML創建界面的時候就遇到了問題,哦對,qtwedget用qpixmap組件顯示圖片,也有image。話說回來,…

Vue中使用jsx

1. jsx的babel配置 1.1 在項目中使用jsx,需要添加對jsx的支持: jsx通常會通過Babel來進行轉換(React編寫的jsx就是通過babel轉換的)Vue中,只需要在Babel中配置對應的插件即可以下列舉需要支持轉換的案例: template -> vue-l…

Spring Cache+Redis緩存方案 vs 傳統redis緩存直接使用RedisTemplate 方案對比

結合 Spring Cache 和 Redis 的緩存方案(即 Spring Cache Redis)相較于普通的 Redis 緩存使用(如直接通過 RedisTemplate 操作),具有以下顯著優勢: 具體實現方案請參考:Spring CacheRedis緩存…

Web應用安全漏洞掃描:原理、常用方法及潛在風險解析?

Web應用安全的關鍵環節在于進行漏洞掃描,這種掃描通過自動化或半自動化的方式,對應用進行安全測試。它能揭示出配置錯誤、代碼缺陷等眾多安全風險。接下來,我將詳細闡述這些情況。 掃描原理 它主要模擬攻擊者的行為,以探測和攻擊…

Spring中@Value注解:原理、加載順序與實戰指南

文章目錄 前言一、Value注解的核心原理1.1 容器啟動階段:環境準備1.2 Bean實例化階段:后置處理器介入1.3 值解析階段:雙引擎處理1. 占位符解析(${...})2. SpEL表達式解析(#{...}) 1.4 類型轉換與…

MySQL 8配置文件詳解

MySQL 8 配置文件詳解 MySQL 8 的配置文件(my.cnf或my.ini)是MySQL服務器啟動時讀取的主要配置文件,它包含了服務器運行所需的各種參數設置。以下是MySQL 8配置文件的詳細解析: 配置文件位置 MySQL 8 會按照以下順序查找配置文件: /etc/m…

臺灣住宅IP哪家好,怎么找到靠譜的海外住宅IP代理商

探索臺灣住宅IP:如何找到靠譜的海外住宅IP代理商? 在當今數字化時代,海外住宅IP的需求日益增長,尤其在跨境電商、網絡營銷、數據抓取等領域。對于需要臺灣住宅IP的用戶來說,找到一家靠譜的海外住宅IP代理商至關重要。本…

讀研一些畢業感想

回首過往三年,從躊躇迷茫到明晰堅定,從稚嫩懵懂到明理成熟,一切只覺輕舟已過萬重山。 依稀記得我拉著行李箱跋山涉水來到學校的那天,早上從廣東中山乘坐10小時高鐵到北京西,然后坐1一個多小時地鐵到學校&#x…

《飛算JavaAI:穩定、高效、跨平臺的AI編程工具優勢解析》

隨著人工智能技術的不斷發展,AI編程工具越來越成為開發者們在研究和應用AI模型時不可或缺的利器。國內外的AI編程工具多種多樣,涵蓋了從基礎編程語言、框架到圖形化界面的多種選擇。然而,在這些工具中,飛算JavaAI作為一種基于Java…

day27/60重寫(補充)

DAY 27 函數專題2:裝飾器 ps:第一期day27對應5月16日 知識點回顧: 裝飾器的思想:進一步復用函數的裝飾器寫法注意內部函數的返回值 作業: 編寫一個裝飾器 logger,在函數執行前后打印日志信息(如…

網傳西門子12億美元收購云原生工業軟件,云化PLM系統轉機在協同

近日,網傳西門子將以12億美元全現金交易收購云原生MES公司FlexFact,并整合其技術至Xcelerator工業軟件平臺。如果此次收購動作完成,將會成為西門子加速工業云轉型的標志性動作,背后的意義也極為深遠,不僅會直接響應競爭…

大模型筆記_檢索增強生成(RAG)

1. RAG的概念 RAG(Retrieval-Augmented Generation) 是一種結合 信息檢索(Retrieval)與文本生成(Generation)的模型架構,旨在通過動態引入外部知識庫或實時數據,提升大語言模型&…