在我以前的所有项目中,调试构建总是更大&发布版本更小。
但奇怪的问题发生在我身上。 当我构建调试APK时,它有 1085KB
如果我构建发布APK,则 2432KB
任何人都可以为我解决这个问题。
我在build.gradle中的依赖项:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "ranjih.kotlinandroid"
minSdkVersion 14
targetSdkVersion 25
versionCode 5
versionName "1.3"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-config:10.2.1'
compile 'com.google.firebase:firebase-messaging:10.2.1'
compile 'com.google.android.gms:play-services-ads:10.2.1'
compile 'com.android.support:support-v4:25.3.1'
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true;
}
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile project(path: ':lib')
}
apply plugin: 'com.google.gms.google-services'
repositories {
maven {
url "https://jitpack.io"
}
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
// These docs use an open ended version so that our plugin
// can be updated quickly in response to Android tooling updates
// We recommend changing it to the latest version from our changelog:
// https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin
classpath 'io.fabric.tools:gradle:1.+'
}
}
答案 0 :(得分:3)
您在没有调试版本的情况下进行测试,而对于发布版本,这只是一个禁忌。
使用相同的构建变体进行测试。
启用minify和shrinkResources时,我的APK大小始终相同或较低。
库可以根据构建类型定义不同的资源,因此其中一个可能需要在构建用于发布时占用更多空间,而不是用于调试。
否则,请尝试使用Android Studio的内置工具对APK进行反编译,然后查看占用所有空间的内容。
答案 1 :(得分:0)
如果您尝试在设备/模拟器中运行或调试应用程序时,刚刚获得Android Studio生成的调试apk,则此apk似乎仅打包特定设备规格的资源/依赖项。
尝试使用Build>构建APK,您可能会注意到(假设)相同的调试apk将更大,甚至可能比发行版更快。
我还answered a similar question详细说明了为什么会这种情况发生。
答案 2 :(得分:0)
如果存在大型png文件,请尝试使用next:
import java.io.*;
import java.util.*;
import org.jfree.data.*;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.plot.PlotOrientation;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.jfree.data.category.DefaultCategoryDataset;
public class ReadExcel{
public static void main(String[]args){
short a=0;
short b=1;
int i=0;
ArrayList<Integer> list1=new ArrayList<Integer>();
ArrayList<Integer> list2=new ArrayList<Integer>();
int x=0, y=0;
String filename ="C:\\Chart.xlsx";
if(filename != null && !filename.equals("")){
try{
FileInputStream fs =new FileInputStream(filename);
HSSFWorkbook wb = new HSSFWorkbook(fs);
for(int k = 0; k < wb.getNumberOfSheets(); k++){
int j=i+1;
HSSFSheet sheet = wb.getSheetAt(k);
int rows = sheet.getPhysicalNumberOfRows();
for(int r = 1; r < rows; r++){
HSSFRow row = sheet.getRow(r);
int cells = row.getPhysicalNumberOfCells();
HSSFCell cell1 = row.getCell(a);
x =(int) cell1.getNumericCellValue();
HSSFCell cell2 = row.getCell(b);
y =(int) cell2.getNumericCellValue();
list1.add(new Integer(x));
list2.add(new Integer(y));
}
i++;
}
}catch(Exception e){
System.out.println(e);
}
}
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(int j=0;j<list1.size();j++){
dataset.setValue((double)list2.get(j), "Marks", list1.get(j).toString());
}
JFreeChart chart = ChartFactory.createBarChart("BarChart using JFreeChart","ID", "Marks", dataset,
PlotOrientation.VERTICAL, false,true, false);
try {
ChartUtilities.saveChartAsJPEG(new File("C:\\chart.jpg"), chart,400, 300);
} catch (IOException e) {
System.out.println("Problem in creating chart.");
}
}
}