android 项目配置收集(未完待续)

配置log开关

主要通过BuildConfig文件来处理,该文件是系统打包后生成的文件:如下

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String LIBRARY_PACKAGE_NAME = "cn.xxxx.xxxx";
  /**
   * @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME
   */
  @Deprecated
  public static final String APPLICATION_ID = "cn.droidlover.xdroidmvp";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0.0";
}

如上我们可以使用DEBUG字段,当然如果你也可以自己配置.

在app下的目录中配置:

 buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
           buildConfigField("boolean", "LOG_DEBUG", "false") 
        }
        debug {
            buildConfigField("boolean", "LOG_DEBUG", "true") 
        }
    }

然后这个LOG_DEBUG字段就可以使用了,如下BuildConfig.LOG_DEBUG.

配置签名文件

android studio 版本 3.5.2

  1. 我是配置一下正式版本的签名
    file->project structure -> build variants->app->build Types
    配置一下签名,然后就会在你的app下的build.gradle就会生成对应的配置,代码如下:
  release { //生成release apk
            zipAlignEnabled true //4字节对齐,减少运行内存消耗 
            minifyEnabled true  //false = 关闭混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        
         debug { //生成debug apk
            zipAlignEnabled true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

然后可以把密码也配置在build.gradle中,代码如下:

 signingConfigs {
        release {
            storeFile file('../my_release.jks')
            storePassword STORE_PASSWORD
            keyAlias  KEY_ALIAS
            keyPassword KEY_PASSWORD
        }
        debug {
            storeFile file('../my_debug.jks')
            storePassword STORE_PASSWORD
            keyAlias  KEY_ALIAS
            keyPassword KEY_PASSWORD
        }
    }

这些属性配置在gradle.properties中,如下:

STORE_PASSWORD =  123456
KEY_PASSWORD = 123456
KEY_ALIAS = mykey

DEBUG_STORE_PASSWORD =  123456
DEBUG_KEY_PASSWORD = 123456
DEBUG_KEY_ALIAS = mykey

build.gradle 中配置生成的的apk的文件名

首先计划生成文件的名字组成由 debug or release +版本号+时间组成

  1. 首先我们需要一个生成时间的方法,这里涉及到groory语法.网上找一找就行了.代码如下:

def static releaseTime(){
    return new Date().format("yyyy-MM-dd HH:mm:ss,TimeZone.getTimeZone("UTC"))
}
android{
    
}

然后是在下面配置一下输出的文件名字,代码如下:

android{
  applicationVariants.all {variant ->
        variant.outputs.all {output ->
            if (variant.buildType.name == "debug") {
                output.outputFileName = "Remote${android.defaultConfig.versionName}_${releaseTime()}_debug_nosign.apk"
            } else if (variant.buildType.name == "release") {
                output.outputFileName = "Remote${android.defaultConfig.versionName}_${releaseTime()}_release_nosign.apk"
            }
        }
    }  
}
    

上面有一个比较重要的问题,如果你发现你打包或者运行出现问题的话,请作如下操作:
请把上面文件名输出的地方改成一个常数值,就是去掉时间戳的部分.,这里我也没太懂,有的时候有影响,有的时候没有.

配置一下内存泄露的监控必备LeakCanary

  1. 添加引用:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'

2.在application中初始化一下:

   if (LeakCanary.isInAnalyzerProcess(this)) {
            //此过程专用于LeakCanary进行堆分析。在此过程中不应初始化应用程序。
            return;
        }
        LeakCanary.install(this);

配置一下so的平台

我们只需要在build.gradle中进行配置就可以了,如下:

defaultConfig{
      ndk {
            abiFilters 'armeabi', 'armeabi-v7a','x86', 'x86_64'
        }
}

上面基本是全平台了,但是如果都选上,APP的包可能会比较大,所以可以根据需求选择.

  1. 手机上基本都是arme的
  2. 模拟器都是x86的了(早些年的win手机也是,那会win手机的速度真的是流畅,可惜了)
  3. 电视的架构现在基本上也是arme的天下了.
  4. 总结::所以没特殊的就只支持arme应该可以了

兼容性如下:

  • armeabi-v7a :armeabi-v7a向下兼容 armeabi
  • arm64-v8a : 能兼容 armeabi-v7a 和 armeabi
  • x86_64 : 兼容 x86
  • mips64 : 兼容 mips

结论

感觉选armeabi 和armeabi-v7a 或者一个armeabi-v7a

你可能感兴趣的:(乱八七糟)