向AIDE(安卓设备上的Android Studio)导入aar库

AIDE是一款安卓版的Android Studio,可以直接在安卓设备上编写安卓程序,无需使用Windows或Mac或Ubuntu电脑。这里推荐这一款AIDEPro,地址:AIDEPro。这款AIDE不仅支持普通安卓程序开发,还可以导入额外的JAR,支持Maven,Aapt,Gradle等。

在编写一个安卓程序时,我们很多时候,需要导入一些AAR库,来让安卓程序支持某些厂商的设备特定的API,且界面符合要求。例如,OPPO手表程序开发社区规定:开发的安卓手表程序,如要上传至OPPO手表应用商店,必须在开发时使用OPPO给定的AAR库。这些库里有OPPO手表的标准UI控件,且有一些OPPO手表的Color OS专属的API。否则,可能无法在OPPO手表上正常运行,或运行效果不符合OPPO手表的常规人机交互方式,从而导致该应用在OPPO应用商店无法通过审核。

AIDE显然不是官方的Android Studio,所以不能用Android Studio的方式导入AAR文件。但也并非无法导入。在百度贴吧里有人提了如何导入,但说明不够清晰,不太易懂。见aide导入aar库教程

本文详细说明一下如何向安卓手机/平板上的AIDE导入AAR库。

AIDE导入AAR库是通过Maven。AIDE可以设置本地Maven库,指定一个文件夹的路径即可。步骤是:

  1. 先点右上角的三个点,选择More...,Settings。
  2. 在Settings里的Build & Run里,选择Local Maven repositories,里面设置本地的Maven目录。AAR文件就会从这里面找。

    那么,这个目录应该怎么输入呢?
    这里以一个OPPO手表的Heytap控件的AAR文件为例:
    我们将这个AAR文件放在华为手机的这个文件夹里:

    在此华为手机上,这个文件的目录位置是My phone/Compatible data/AideProjects/Libraries/OPPO/Heytap/7.0.18。注意它的文件名也是Heytap-7.0.18.aar,和目录的最后两节一致。这是规定,后面会再次提到。
    但是要注意:这个目录在AIDE安卓程序上是不可能读出来的。因为当今的国行华为手机使用的系统是Harmony OS Next,并不是一个基于安卓的系统,而是华为自己开发的鸿蒙系统。安卓程序的运行是在一个容器里以兼容的方式运行的。那么,AIDE这个安卓程序是如何读取目录的呢?
    我们可以在AIDE的文件管理器里找到这个文件,然后长按这个文件,点击Copy Path。

    然后随便找个可以输入文本的地方,你会注意到弹出键盘的地方会显示你刚才复制的路径。

    和前面的华为手机里的文件目录做个对比,会发现,/storage/emulated/0/的前缀用于代替/My phone/Compatible data/,之后都一致。也就是说,鸿蒙系统的华为手机把安卓容器里的东西放在了/My phone/Compatible data/里。显然,对于AIDE来说,能够读取的目录是以/storage/emulated/0/为前缀的安卓目录。
    所以,在这里,我们就是把AAR文件放在/storage/emulated/0/AideProjects/Libraries/里。因此Local Maven repositories里应该写:

    除此之外,建议启用Aapt2。在Advanced Settings,Experimental functions里。

    除了要在全局设置里导入AAR以外,还要在具体的项目里导入这个AAR库。
    新建一个AndroidX项目。然后在项目里的app里的build.gradle里(注意,是项目的app目录下,不是项目根目录下哦!),在dependencies里加一句implementation 'OPPO:Heytap:7.0.18'。

    在这里说明一下:OPPO:Heytap:7.0.18表明从Local Maven repositories(即/storage/emulated/0/AideProjects/Libraries/)里进入OPPO/Heytap/7.0.18。与此同时,目录的最后两节(即Heytap和7.0.18)也代表了包名和版本。所以,文件的命名也必须为HeyTap-7.0.18.aar(即目录的最后两节,中间用-连接) ,否则系统无法读取。
    此时刷新Maven,等待片刻,系统compile基本成功,但有个错误:

    这里就把minSdkVersion改成24。不科学,但算个临时解决方案。
相关推荐
小羊没烦恼!3 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里3 天前
java中的继承和多态的区别
java
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕3 天前
JSONObject与JSONArray封装数据格式区别
java·json
千里马学框架3 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖3 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
AFinalStone3 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
此时不提桶,更待何时3 天前
01-06-A-JVM排查实战详解
java·jvm