Introduction
本书随笔记录一些工作中整理的一些有用的知识点。供大家参考。 如有兴趣,大家可以一起讨论。
https://developer.android.com/studio/projects/index.html
这本书主要是整理工作或学习中的知识点,内容可能无序。 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提示。解决此包没时间戳问题
全开发人员公用证书
在用户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
假定$pro_home 为项目根目录 gradle.properties内设置keystore文件目录,可以相对或绝对目录
STORE_FILE=../sign/android_sign.jks ##此处使用的是以app为当前目录设置的相对目录。并确保此证书存在
使用以上两配置,可以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}
参考: keytool
Android java.lang.OutOfMemoryError: GC overhead limit exceeded
app > build.gradle > add next options
{ android
dexOptions { javaMaxHeapSize "4g" }//值可填自己合理的分配量
...
}
HTTPS双向认证
http://yaoguais.com/article/app/https-api.html
hex fiend
A fast and clever open source hex editor for Mac OS X.(一个快而聪明的开源十六进制编辑器适用于Mac OS X) http://ridiculousfish.com/hexfiend/ 可以方便查看文件头信息;此工具类似于winhex;
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)
需要修改配置的地址
touch local.properties
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
'
Last updated
Was this helpful?