Android-Build
view release on metacpan or search on metacpan
lib/Android/Build.pm view on Meta::CPAN
sub getBinFolder($) {my ($a) = @_; $a->buildArea.'bin/'} # Bin folder name
sub getGenFolder($) {my ($a) = @_; $a->buildArea.'gen/'} # Gen folder name
sub getResFolder($) {my ($a) = @_; $a->buildArea.'res/'} # Res folder name
sub getManifestFile($) {my ($a) = @_; $a->buildArea.'AndroidManifest.xml'} # Name of manifest file
sub logMessage($@) # Log a message
{my ($android, @message) = @_;
my $s = join '', grep {$_} @message;
chomp($s) if $s =~ /\n\Z/;
push @{$android->log}, $s;
say STDERR $s if -t STDERR;
}
#-------------------------------------------------------------------------------
# Create icons for app
#-------------------------------------------------------------------------------
sub pushIcon # Create and transfer each icon using Imagemagick
{my ($android, $icon, $size, $dir) = @_;
my $res = $android->getResFolder;
my $man = $android->getManifestFile;
for my $i(qw(ic_launcher))
{for my $d(qw(drawable))
{my $s = $size;
my $T = $res.$d.'-'.$dir.'dpi/'.$i.'.png';
makePath($T);
unlink $T;
my $c = "convert -strip \"$icon\" -resize ${s}x${s}! \"$T\""; # Convert icon to required size and make it square
my $r = zzz($c);
# say STDERR dump([$c, $icon, $T, -e $T, fileSize($T), $r ]);
confess "Unable to create icon:\n$T\n$r\n" # Check icon was created
if $r or !-e $T or fileSize($T) < 10;
}
}
}
sub pushIcons # Create icons possibly in parallel
{my ($android) = @_;
my $icon = $android->iconX;
-e $icon or confess "Cannot find icon file:\n$icon\n";
lib/Android/Build.pm view on Meta::CPAN
$android->make; # Compile the app
}
sub install2($) #P Install an already L<compiled|/compile> app on the selected L<device|/device>:
{my ($android) = @_; # Android build
my $apk = $android->apk;
my $device = $android->getDevice;
my $package = $android->getPackage;
my $activity = $android->activityX;
my $adb = $android->getAdb." $device ";
# say STDERR "Install app";
zzz("$adb install -r $apk");
# say STDERR "Start app";
zzz("$adb shell am start $package/.Activity");
# say STDERR "App installed and started";
}
sub lint2($) #P Lint all the source code java files for the app
{my ($android) = @_; # Android build
my $src = $android->getLintFile;
my $androidJar = $android->getAndroidJar;
my $area = $android->classes // 'Classes';
makePath($area);
zzz("javac *.java -d $area -cp $androidJar:$area"); # Android, plus locally created classes
}
( run in 0.431 second using v1.01-cache-2.11-cpan-483215c6ad5 )