import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . file . Directory Property Ċ import Ġorg . gradle . api . tasks . Input Files Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġcom . android . build . api . variant . Built Artifacts Loader Ċ import Ġcom . android . build . api . artifact . Artifact Type Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . api . tasks . Internal Ċ Ċ plugins Ġ{ ĊĠĠĠĠĠĠĠ Ġid (" com . android . application ") ĊĠĠĠĠĠĠĠ Ġkotlin (" android ") ĊĠĠĠĠĠĠĠ Ġkotlin (" android . extensions ") Ċ } Ċ Ċ abstract Ġclass ĠDisplay A pk s Task : ĠDefault Task () Ġ{ ĊĊĠĠĠ Ġ@ get : Input Files ĊĠĠĠ Ġabstract Ġval Ġapk Folder : ĠDirectory Property ĊĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġabstract Ġval Ġbuilt Artifacts Loader : ĠProperty < Built Artifacts Loader > ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġtask Action () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilt Artifacts Ġ= Ġbuilt Artifacts Loader . get (). load ( apk Folder . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠRuntimeException (" Cannot Ġload ĠA PK s ") ĊĠĠĠĠĠĠĠ Ġbuilt Artifacts . elements . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Got Ġan ĠA PK Ġat Ġ${ it . outputFile }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ android Ġ{ ĊĠĠĠĠĊĠĠĠ Ġcompile Sdk Version ( 2 9 ) ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( 2 1 ) ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version ( 2 9 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ android Components Ġ{ ĊĠĠĠ Ġon Variants Ġ{ Ġvariant Ġ-> ĊĠĠĠĠĠĠĠ Ġproject . tasks . register < Display A pk s Task >(" ${ variant . name } Display A pk s ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapk Folder . set ( variant . artifacts . get ( Artifact Type . AP K )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt Artifacts Loader . set ( variant . artifacts . get Built Artifacts Loader ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }