Android开发要点
1、自定义View如果作为ListView Item不要对View单独设置setClickable、setFocusable,如果设置后ListView的Selector会失效。
2、ListView Item中CardView如果设置cardElevation值,Item选中的ripple效果会被置为底部,造成UI效果不理想,在ListView中添加android:drawSelectorOnTop="true"将背景前置到顶部可以解决。
3、Android WebView如果HTML内容内嵌iframe此时通过shouldOverrideLoadingUrl方法不能捕获到iframe内部跳转的URL,此时需要调用shouldInterceptRequest()来捕获,这个方法不仅仅会捕获<a href=""></a>的URL跳转,对HTML内容的HTTP资源请求也会捕获,比如css、js等。
4、微信分享时出现“分享受限,由于hit push hold!!无法分享到微信”,原因是分享用的微信账号在其他手机登录,但是本机还没有退出登录,导致没有权限分享,重新进入微信并登录就OK。
5、公私密钥对转keystore,公私密钥对:platform.x509.pem+platform.pk8
- 把pkcs8格式的私钥转换为pkcs12格式:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt
- 生成pkcs12格式的密钥文件:
openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name loginDebug
- 生成keystore:
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass android -alias loginDebug
6、提取APK签名密钥信息
签名时生成的RSA文件会保存在APK包中的META-INF文件夹中,名为CERT.RSA.
通过keytool读取,
keytool -printcert -file CERT.RSA
可以打印MD5、SHA1、SHA256相关信息。
7、Android Canvas RecF的定义
使用drawArc画一段圆弧时,RecF确定的是圆弧所在圆的边界范围left、top、right、bottom。
8、Android Source Download Proxy Setting
https://github.com/luciusluan/notes/wiki/repo%E4%BD%BF%E7%94%A8socket5%E4%BB%A3%E7%90%86
9、Memcached在Mac OS X下安装make报错:
修改MakeFile中CFLAGS的定义,将-Werror去掉。
因为Makefile有-Werror出现警告时不通过编译。-Werror的意思是警告即错误,即编译过程中有警告产生就无法编译通过。
10、HttpUrlconnection错误处理
HTTP status code=200时,通过getInputStream获取服务器的返回数据。
如果服务器的statuscode为非200时,getInputStream()会抛出java.io.FileNotFoundException异常, 这时无法获取到错误的相关信息,其实Http connection也是按照Linux 输入输出的那一套规则,id=0的文件描述符代表标准输入,id=1代表标准输出,id=2 代表标准错误,HTTP status code=200为正确输出,其他则为错误,需要通过getErrorStream()读取。
11、Android Animation
ViewAnimation 视图动画
FrameAnimation Drawable动画
ObjectAnimation 属性动画
ViewPropertyAnimator API>12 View类添加的一个简易动画配置方法
LayoutAnimator API>11 针对ViewGroup,在ViewGroup的子View添加删除隐藏更改时Layout的动画效果。通过LayoutTransition实现。