如何使用网页调起APP
前言
为了推广自己的APP,增加用户黏性,会在浏览器中加入调用自己APP的链接,如果用户没有安装APP,则去下载。淘宝,支付宝,百度手机助手,都有这个功能。简单介绍一下方法
拦截http链接
不要用该方法,兼容性差,国内浏览器都不允许跳转
1 | <activity android:name=”.MyActivity”> |
其原理就是,对指定的http链接进行拦截,从而达到跳转目的。这种方式还有一点恶心的地方就是会弹出一个弹窗让你选择是用浏览器还是APP打开该连接,如果你选择浏览器并勾选不再询问,如果下次你的URL没有改变,那你就悲剧了。。。
如何通过travis ci自动发布blog
背景
过时,请使用github action
用hexo搭建BLOG,悲催的就是每次换台电脑就得搭一次环境,之前在网上也看到过有自动发布的教程,一直没有搞。最近网上又翻了一下,发现用travis ci不需要拥有自己的主机(有提供服务的平台),相对来说比较节省折腾,整理一下发出来。
要求
- github pages,用于搭建BLOG,不介绍。
- travis ci,自己百度一下补脑,可以理解为就是一个node.js的虚拟机环境。https://travis-ci.org/提供了travis-ci的服务,可以指定构建github上的代码。
- 本地有hexo环境
- linux或者MAC工作环境
android pcm转amr格式
引言
项目中需要将科大讯飞生成的录音传递到服务器上,因为amr格式的文件大小最小,而讯飞生成的文件是pcm格式的,所以需要将pcm转换成amr格式。在网上找了半天资料,发现android系统的源码中包含有一个android.media.AmrInputStream类,其内部分装了将pcm转换为amr的方法。
用法
首先将AmrInputStream复制到工程下,注意包名也不要改动,因为该类调用的是libmedia.so的native方法。
只要将原来的pcm文件用AmrInputStreamread后生成的字节写入新文件就成了amr格式的了。
起初我就是这样试的,结果生成的文件一直不能播放,我以为是采样率的问题,后来试了几个参数都不行。
各种google,百度,终于找到了原因,原来这个只能转内容,而amr文件还需要一个文件头。其文件头为六个字节,分别是0x23 0x21 0x41 0x4D 0x52 0x0A,下面是我写的一个工具类
使用ant打包APK及依赖包最佳解决办法
简介
过时过时过时!!现在用gradle
最近有小伙伴问ant打包的事,google现在又在推广它的gradle构建工具,但是,目前有许多朋友还是用的ant,而且,在SDK多次更新之后,之前写好的ant文件不适用了,典型的例子就是apkbuilder命令。那么,怎么办呢??
好多人在网上搜索写好的打包脚本,并费劲心机的寻找工程依赖的打包方法,其实,android的SDK已经给我们提供了该build.xml文件了,就在/tools/ant/下面,这个脚本引用了tools/lib下的ant-task.jar,封装了好多target,我这里就说说怎么使用该脚本。
生成ant脚本
在sdk/tools目录下执行下面的命令,注意将命令里面的目录改成你的工程的目录
1
android update project -p /dir/to/ur/project
如果你的工程没问题,就会在目录下生成2个文件,
build.xml和local.properties,打开local.properties,可看到其实是一个环境配置在工程目录新建
ant.properties,将下面的配置信息添加到该文件中,注意将keystore的信息改成你的1
2
3
4key.store=/home/android/android/build-res/safetrip.releasekey
key.alias=android
key.store.password=password
key.alias.password=password打包,在工程下使用命令
ant release,或者在eclipse中用ant运行
探究支付宝android客户端的动态加载
在早期的支付宝android客户端中,也有插件化的功能。大概的做法就是,自定义所有的UI控件,再通过XML文件,仿安卓原生XML的布局文件来搭建布局,再通过自定义的表达式解析器,利用JAVA的反射特性来给具体的控件添加不同的功能。这样也达到了插件化。
之前写过一篇文章,说的是支付宝的插件化。其实这篇文章很老了,现在的支付宝早已不是这种做法。最近几天忙里偷闲,反编译了一下支付宝的插件化。
在下资历不高,简单分享一下,大牛看到也不要喷我,在下也是在探索学习中,欢迎交流!
工具:
工欲善其事,必先利其器。因为平时拆包少,对某些好工具也了解不多,基本用了手工的方法来处理的。大家可以用什么APK改之理之类的工具。
apktool:这个大家都知道,反编译利器,我下的是apktool_2.0.0b9版本dex2jar:不是必须,但看smali代码太累,用这个工具好受一些jd-gui:不解释Replace Studio:文本搜索工具,可以搜索某文件夹下的文件是否有某文本,我一直用这个,不知道大家有没有其它好工具推荐。notepad++:如果你用记事本也可以android环境:这个必须,你看完它的代码了,你起码得自己写的试试吧