皮皮网
皮皮网

【launcher源码解析】【划水捉麻子源码】【诺哈建站源码】extention源码

来源:仿真报税系统源码 发表时间:2024-11-27 05:04:42

1.Android-gradle plugin
2.如何在linux上使用安装的软件

extention源码

Android-gradle plugin

       agp,即Android-Gradle-Plugin的缩写,项目配置主要在根目录下的build.gradle文件中的dependencies中,配置classpath "com.android.tools.build:gradle:xxx"。在根目录的build.gradle文件中配置好agp后,就可以在任意module的build.gradle文件中apply Android提供的各种plugin。常见的launcher源码解析有com.android.application和com.android.library。apply了com.android.application的module使用assemblexxx执行构建命令可打出来一个apk,而apply了com.android.library的module产物则是一个aar。apply java的module表示是个纯java的模块,打出的产物是个jar。

       基于gradle构建的项目基本结构包括根目录下的settings.gradle,用来配置项目中的子模块,使用include来引入子模块。如果子模块不在项目目录内,则可以在include之后使用project(":xxx").projectDir = new File("...")来指定外部module的路径。项目根目录下还有一个build.gradle文件,用来配置整个项目的基本依赖,如插件依赖,aar依赖的划水捉麻子源码maven仓库地址等。

       根目录和每个module中都会有一个gradle.properties文件,用于配置一些key-value。构建脚本文件可以直接使用gradle.properties中的key-value配置,例如配置DEV_MODE=true,可在gradle文件中直接使用if ("true" == DEV_MODE) { xxx}。但需要注意的是,gradle.properties中配置的value会被当作字符串类型,即使写的是数字或true/false,也会被当作字符串处理。诺哈建站源码同时,配置的key-value被视为常量,不可修改,因此配置KEY的名字时,应使用全大写。

       在项目根目录和每个module的gradle.properties文件中配置的key-value存在读范围问题和覆盖问题。子module可以读取本目录和父级目录下的gradle.properties中的key-value,但外部目录不能直接读取子目录下的gradle.properties文件。如果子目录下的健康上报系统源码gradle.properties文件中有相同的key值,则子目录中的value值将覆盖父级目录文件中的value值。在构建一个源码/aar切换的Andrid gradle项目时,可以通过在根目录的gradle.properties中配置全局参数,如构建用的Andrid SDK版本号、构建工具版本号和最低支持的系统版本号,而每个module的gradle.properties则可以为每个module配置其aar所需要的maven参数。

       应用插件源码中,一般来说只有壳module的build.gradle中会apply application插件,用于打出一个apk供用户安装。博弈棋牌源码应用插件的实现类为AppPlugin,继承自AbstractAppPlugin,最终调用basePluginApply方法,其中重点调用ThreadRecorder创建了三个线程任务。ThreadRecorder#record中的逻辑是通过create方法设置各种id,并使用block.call方法调用write方法,write方法中调用了ProcessProfileWRiter的writeRecord方法,将GradleBuildProfileSpan添加到span队列中,最后在ProcessProfileWriter的finish方法中将相关信息全部写到日志文件中。

       BasePlugin中逻辑清晰,threadRecorder.record的逻辑就是调用最后一个lambda参数,包括configureProject、configureExtension和createTaskts。configureProject中创建了AndroidBuilder对象和初始化了DataBindingBuilder成员变量,配置了Java工程应该有的能力,如source、configureSourceSetDefaults、configureOutputDirectoryForSourceSet、createProcessResourcesTask、createCompileJavaTask、configureJavaDoc和configureTest等。

       configureBuildNeeded和configureBuildDependents方法分别配置了buildNeeded task和buildDependents task,确保build之后才能执行buildDependents。configureProject方法最后使用gradle.addBuildListener注册了构建监听器,在buildFinished回调中关闭所有进程。

       configureExtension创建了buildTypeContainer、productFlavorContainer、signingConfigContainer和buildOutputs四个容器,构建了一个extension对象,并用这个extention创建了variantFactory,为变体配置了buildType、productFlavor、signingConfig和buildOutputs。createTasks方法分为两部分,createTasksBeforeEvaluate构建前的准备工作,createAndroidTasks为真正的构建task。createAndroidTasks方法中,为每个变体调用了createTasksForVariantData方法,判断变体类型后调用taskManager.createTasksForVariantScope(variantScope)为变体配置了众多task,如assembleXXX的相关task,实现多渠道的核心功能。

如何在linux上使用安装的软件

       ç›®å‰æµè¡Œçš„软件包有两种比较常见的形式,一种是以 RPM、deb包为代表的智能软件包,另一种是file.tar.gz形式的压缩。

       ä¸€ã€æºä»£ç å®‰è£…

       åº”用软件的源代码一般是file.tar.gz或者file.tgz格式,也就是说是以tar来打包,然后用gzip来压缩。

       ä»¥åº”用软件xfce-3.8.7.tar.gz为例,先进入软件的当前目录,然后使用gzip解压:#gzip -d

       xfce-3.8.7.tar.gz(注:-d 代表解压)。然后用tar解包:#tar -xvf

       xfce-3.8.7.tar。由于tar和gzip经常一起使用,所以tar还提供了一个参数,它可以自动调用gzip来解压,即:# tar -xzvf xfce-3.8.7.tar.gz。

       è¿›å…¥è§£åŽ‹å®Œæˆä¹‹åŽæ–°å»ºç«‹çš„目录,一般的应用软件中都有一个用来配置软件的可执行文件

       â€”—configure,它的参数比较多,而且用法也非常灵活。当然,安装不同的软件参数也不相同,具体有些什么参数,可以用命令:#./configure help取得详细的帮助。例如./configure --prefix=/usr/local/mysql(表示设置软件的安装目录为:/usr/local/mysql)在运行#./configure [options]配置软件后,它会根据你当前系统、编译、安装相关的信息,生成一个安装配置文件Makefile。Makefile文件通常是用来编译和安装软件的,运行make命令时系统会自动根据Makefile文件中的设置对软件进行编译和安装,如果编译能够顺利通过的话,运行#make install命令来安装。

       äºŒã€æ™ºèƒ½åŒ…安装

       çŽ°åœ¨ï¼Œä»¥æ™ºèƒ½åŒ…形式提供的软件很多,像RedHat Linux的RPM、Debian

       Linux的DEB、KISS、BSD以及Slackware等。RPM和Debian几乎统治着Linux包管理世界是Linux发行版本所广泛采用的应用软件。

       RPM是RedHat Package Manager的缩写,它只能使用在安装了RPM软件的系统中,不过好像目前大多数中文Linux发行版本都支持RPM软件包。

       1、用命令管理

       #rpm [options] abc.rpm

       ä¾‹å¦‚安装python-1.5.2-.i.rpm软件时,可以使用如下命令:#rpm –ivh python-1.5.2-.i.rpm。

       å¦‚果想知道RPM软件包中的相关信息,可以使用命令: #rpm ivhpython1.5.2- .i.rpm。

       å¦‚果想知道python-1.5.2-.i.rpm会在系统里安装哪些文件,可以使用以下这个命令:rpm -qpl python-1.5.2-.i.rpm。

       2、图形界面工具管理

       ç›¸å¯¹å‘½ä»¤æ–¹å¼æ¥è¯´ï¼Œåœ¨å›¾å½¢çŽ¯å¢ƒä¸‹ï¼Œå®‰è£…、升级、卸载和查询RPM软件包是一件非常简单轻松的事情,因为Linux提供了几个功能强大的RPM包管理工具。推荐使用Linux的图形管理工具来维护RPM软件包,GNOME中的GnoRPM和KDE中的Kpackage就是功能强大的RPM。

       ç‚¹å‡»Start(开始)→System tools(系统工具)→Kpackage,出现Kpackage界面,同时分析Linux系统中的 RPM数据库。它将安装好的RPM包形式的软件按照功能分在Amusements、Application、Development、Document、 Extension、Extentions、Networking、System Environment、User Interface以及X等几个树形目录中,每个目录中有相应的文件图标和名称。要安装或升级软件,只要点击工具栏的相应按钮就会弹出打开文件的对话框,选中要安装的RPM文件,单击OK按钮,如果不缺必要的运行库,就开始安装软件了。卸载软件时,用鼠标选择相应的软件,单击右边的Uninstall按钮就可以了。

相关栏目:时尚