Android
  • Introduction
  • Android Studio
    • AS的项目结构
    • adb
    • aapt
    • dx
    • Gradle
    • Kotlin on android
  • Smaller
  • decompiler
  • MISC
  • 框架 framework
  • 设计模式
  • dex
  • reinforce加固
  • code
    • Java Tips
      • 负数 negative
      • The Java Tutorials
        • 原始数据类型 Primitive Data Types
      • 运算符
        • 一元运算符
        • 算术运算符
        • 移位运算符
        • 关系运算符
      • 逻辑运算符
        • 逻辑 非 ! 关系值表
        • 逻辑 与 && 关系值表
        • 逻辑 或 || 关系值表
        • 与 & And
        • 或 | Or
        • 非 ~ Nor
        • 异或 ^ Xor
        • 赋值运算符
        • tips
      • == equals
      • Try Catch finally
        • 有意思的东西
      • String、StringBuilder、StringBuffer区别
      • inner classes、nested static classes
    • runtime_memory
    • javaStackTrace
    • Guava
    • FFMPEG
    • GoogleSamples
    • Full Kotlin Reference
    • release屏蔽Log代码
    • Thread
  • ANR
  • 注解改进代码检查
Powered by GitBook
On this page
  • keytool
  • jarsigner
  • 全开发人员公用证书
  • Android java.lang.OutOfMemoryError: GC overhead limit exceeded
  • HTTPS双向认证
  • hex fiend
  • Waitting for debugging
  • 命令行编译android project
  • FQA
  • 项目中编译报 缺少org.apache.http.???时,使用以下方法去解决
  • duplicated files copied in apk META-INFO
  • Error:Can't connect to SOCKS proxy:Connection refused

Was this helpful?

Introduction

NextAndroid Studio

Last updated 5 years ago

Was this helpful?

本书随笔记录一些工作中整理的一些有用的知识点。供大家参考。 如有兴趣,大家可以一起讨论。

、、、等邮箱联系

这本书主要是整理工作或学习中的知识点,内容可能无序。 by jiek 20161021

Firebase 是Google面向移动开发者的一体化平台。

//ProviderInstaller,因为是google-service里的功能,在大陆不可能。其原理是用googlePlayService里的自动升级功能实现 Loader

keytool

查看证书信息

keytool -list -printcert -jarfile a.apk >~/apk.certlist #看APK签名信息
keytool -list -keystore android_sign.jks >~/jks.certlist #看keystore证书信息
keytool -list -keystore debug.keystore >~/debug.certlist #默认密码为android ; keyAlias 'androiddebugkey'
keytool -printcert -file XXX.RSA #查看apk/META-INF/下XXX.RSA证书信息

jarsigner

重签名:原包original.apk重签名出dest.apk, 使用android_sign.jks证书。

jarsigner -verbose -certs -keystore {./android_sign.jks} -storepass {111111} -keypass {111111} -digestalg SHA1 -sigalg MD5withRSA -signedjar {dest.apk} {original.apk} {111111} **-tsa http://timestamp.digicert.com**
#-tsa是为了去掉warning提示。解决此包没时间戳问题

全开发人员公用证书

  1. 在用户home目录的 .gradle中创建gradle.properties文件如下。

    $ touch {Users_home}/.gradle/gradle.properties
    $ vi {Users_home}/.gradle/gradle.properties    #在此文件中配置自己证书的密码信息,./gradlew 命令可直接使用。如下三行
    STORE_PASSWORD=111111
    KEY_ALIAS=111111
    KEY_PASSWORD=111111
  2. 假定$pro_home 为项目根目录 gradle.properties内设置keystore文件目录,可以相对或绝对目录

    STORE_FILE=../sign/android_sign.jks    ##此处使用的是以app为当前目录设置的相对目录。并确保此证书存在
  3. 使用以上两配置,可以debug时也使用正式keystore打包

app/gradle.properties

android{
...
signingConfigs {
        signing {
            storeFile file(STORE_FILE)
            storePassword STORE_PASSWORD
            keyAlias KEY_ALIAS
            keyPassword KEY_PASSWORD
        }
    }
    ...
    buildTypes {
        debug {
            signingConfig signingConfigs.signing
            ...
        }
        release {
            ...   #同上
        }
    }
    ...
}
  • 验证打包使用证书信息

$ keytool -list -printcert -jarfile {debug.apk}

Android java.lang.OutOfMemoryError: GC overhead limit exceeded

app > build.gradle > add next options

 { android
   dexOptions {  javaMaxHeapSize "4g" }//值可填自己合理的分配量
   ...
 }

HTTPS双向认证

hex fiend

Waitting for debugging

Restart ADB Restart Android Studio Restart phone Restart Computer Switch USB port Update everything Switch develop on/off Tried with emulator (will also be stuck) Uninstal Vyzor beta (Chrome plugin that use ADB) Remove project and load into Android Studio again Updated JDK 1.7.0_71 to 1.8.0_74

If the error suggested for (waiting for the debugger on port 8100),may also need to look under the hosts is not localhost is set to a fixed IP. 还需查看hosts里的localhost是被设置成固定IP了。(20170306)

命令行编译android project

一个github下的Androidstudio项目,clone下来后,使用命令行运行起来。(20170309)

需要修改配置的地址

  1. touch local.properties

  2. vi local.properties

    ndk.dir={sdk}/ndk-bundle
    sdk.dir={sdk}
$ ./gradlew -v    #version
$ ./gradlew init  #initialize
$ ./gradlew clean #clean所有编译cache
$ ./gradlew build #build
$ ./gradlew assemble #编译所有的包
$ ./gradlew assembleDebug #编译Debug包
$ ./gradlew assembleRelease #编译Release包
------或以后一条运行
$./gradlew init && ./gradlew assembleDebug

编译后生成的文件在 `./app/build/outputs/apk`目录下,并把编译好的所有文件都移动到当前目录。
$ rm -rf ./*.apk && mv ./app/build/outputs/apk/* ./

FQA

项目中编译报 缺少org.apache.http.???时,使用以下方法去解决

gradle.build中加入

gradle.build中加入
android{
    ......
    useLibrary 'org.apache.http.legacy' 
}

duplicated files copied in apk META-INFO

gradle.build中加入

android {
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'//此处罗列冲突的文件
        exclude 'META-INF/abcd'
    }
 }

Error:Can't connect to SOCKS proxy:Connection refused

IOException: https://dl.google.com/android/repository/addons_list-3.xml
java.net.SocketException: Can't connect to SOCKS proxy:Connection refused
IOException: https://dl.google.com/android/repository/addons_list-2.xml
java.net.SocketException: Can't connect to SOCKS proxy:Connection refused
IOException: https://dl.google.com/android/repository/addons_list-1.xml
java.net.SocketException: Can't connect to SOCKS proxy:Connection refused
Failed to download any source lists!
java.net.SocketException: Can't connect to SOCKS proxy:Connection refused

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_yllyDebugApkCopy'.
   > Could not resolve com.umeng.analytics:analytics:latest.integration.
     Required by:
         project :app
      > Could not resolve com.umeng.analytics:analytics:latest.integration.
         > Failed to list versions for com.umeng.analytics:analytics.
            > Unable to load Maven meta-data from https://repo1.maven.org/maven2/com/umeng/analytics/analytics/maven-metadata.xml.
               > Could not GET 'https://repo1.maven.org/maven2/com/umeng/analytics/analytics/maven-metadata.xml'.
                  > Can't connect to SOCKS proxy:Connection refused

app.gradle中dependencies的compile umeng analytics版本不识别

compile 'com.umeng.analytics:analytics:latest.integration'改为提示的最新的 compile 'com.umeng.analytics:analytics:6.0.9'

参考:

A fast and clever open source hex editor for Mac OS X.(一个快而聪明的开源十六进制编辑器适用于Mac OS X) 可以方便查看文件头信息;此工具类似于winhex;

Android官方统计版本占有表
Android版本更新功能与API
java tips
gmail
qq
aliyun
163
https://developer.android.com/studio/projects/index.html
GLOSSARY
http://yaoguais.com/article/app/https-api.html
http://ridiculousfish.com/hexfiend/
keytool