先科普
BoringSSL 是Google创建的 OpenSSL 分支,但使用BoringSSL的代码不能保证API或ABI的稳定性,所以谷歌会继续向 OpenSSL递交bug修正,继续资助Core Infrastructure Initiative和OpenBSD基金会。
谷歌使用了超过70个OpenSSL补丁,部分被接受合并到了OpenSSL主库,但大部分没有。随着Android、Chrome和其它项目开始需要这些补丁的子集,事情日益变得复杂,要保证所有补丁在不同代码库正常工作需要太多精力。所以他们决定创建OpenSSL分支。
简单总结一下BoringSSL的优缺点
优点:兼容OpenSSL,修正了许多OpenSSL的BUG,OpenSSL改不了的BUG也被BoringSSL改了。
缺点:BoringSSL只为TLS和HTTPS而生,部分OpenSSL开关默认是关闭的,其他用途的话还是建议OpenSSL。
Nginx替换OpenSSL为BoringSSL与替换为LibreSSL方法基本类似,手动编译会比较麻烦
编译之前需要进行代码的补丁修正,这里提供一个已经实现好的编译脚本供参考
github @ajhaydock
https://github.com/ajhaydock/BoringNginx
Read more…
之前在MAC OS折腾编译iOS版linphone-iphone SDK和APP成功,下一步继续编译Android版的linphone-android。Android版的文档更简单,一个README.TXT就结束,然后各种调查。
简单说明一下linphone
Linphone is an open source SIP Phone, available on mobile and desktop environments (iOS, Android, Windows Phone 8, Linux, Windows Desktop, MAC OSX) and on web browsers.
Linphone has inside a separation between the user interfaces and the core engine, allowing to create various kinds of user interface on top of the same functionalities.
Read more…
HTML5 HYBIRD混合APP需要在H5页面中打开第三方网站(例如:百度),android默认不在当前WebView中打开,反而会调用系统或外部浏览器,解决办法是自己重写WebViewClient,覆盖shouldOverrideUrlLoading并让其返回True。
实现代码
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
// webview自己加载URL,让后通知系统不需要HandleURL
view.loadUrl(url);
return true;
}
}); |
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
// webview自己加载URL,让后通知系统不需要HandleURL
view.loadUrl(url);
return true;
}
});
Read more…
本地DNS缓存被GFW污染时,需要手动强制清理本地的DNS缓存。通常只需要修复一下网络连接即可。使用命令方式处理也很简单,下面是Windows/Mac OS/Linux/Unix环境下使用命令强制清空系统本地DNS缓存的方法。
1.Windows环境下,可以使用以下命令:
2.Mac OS X 环境下,通常可以使用以下命令:
sudo dscacheutil -flushcache |
sudo dscacheutil -flushcache
Read more…
做Android开发时通常使用HttpURLConnection来进行文件的上传,但是,如果需要上传较大文件时就不建议使用了,HttpURLConnection使用时如果编写程序不当会在上传时导致另人抓狂的OOM问题,在Android开发时如果需要上传较大文件建议使用Apache HttpComponents的组件HttpClient来进行文件上传处理。同时这个组件目前还有Android专用的版本(HttpClient for Android),具体用法如下:
1.下载并导入HttpClient组件,可以只下载httpmime-4.1.1.jar或直接下载Android HttpClient版的源代码
Read more…
Android原生系统中的自带浏览器和Chrome浏览器是不支持直接打开PDF的文档的,需要现下载到本地之后再使用Adobe Reader之类的PDF阅读器才能打开。微软Office中DOC和XLS之类的也是如此。不过用习惯了安装了ActiveX插件的IE的客户最近突发奇想,要求在新开发APP中可以直接打开并阅读PDF和微软Office的DOC,XLS,PPT等文档。经过调查发现以下方法可用。供大家参考。
1.使用内置WebView或WebChromeClient打开以下格式的URL,借用GoogleDoc的嵌入式文档服务打开需要的打开的文档。只需按固定格式打开即可。
https://docs.google.com/gview?embedded=true&url=XXXXXX
其中XXXXXX为需要打开文档的公网URL地址
Read more…
Android在使用脚本编译和测试时,使用默认的testrunner不会输出文件类型的单元测试报告,每次只能分析logcat的无法直观的看到单元测试结果和报告,这给编写自动化脚本带来了不少麻烦,虽然可以自己动手编写支持junit测试报告输出的TestRunner,但是比较麻烦。除此之外,有一个android-junit-report.jar的开源包可以拿来使用,使用方法也很简单,输出的单元测试报告也可以为多种报告分析工具分析。具体使用方法如下:
这里假设Android APP的包名为com.xxx.xxx
方法1:使用Eclipse IDE方式
1.下载android-junit-report.jar并将其导入到Android测试项目的libs中
2.打开Android测试项目的AndroidManifest.xml文件,找到
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.xxx.xxx"></instrumentation> |
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.xxx.xxx"></instrumentation>
修改为
<instrumentation
android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
android:targetPackage="com.xxx.xxx"></instrumentation> |
<instrumentation
android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
android:targetPackage="com.xxx.xxx"></instrumentation>
3.运行Junit测试
4.使用ADB方式获取单元测试报告
adb pull /data/data/com.xxx.xxx/files/junit-report.xml |
adb pull /data/data/com.xxx.xxx/files/junit-report.xml
Read more…
Recent Comments