Gradle排除传递依赖

Gradle允许你完全控制传递依赖,你可以选择排除全部的传递依赖也可以排除指定的依赖。
exclude:可以设置不编译指定的模块,排除指定模块的依赖。后的参数有group和module,可以分别单独使用,会排除所有匹配项。

// 编译CommonSDK模块,但是去掉此模块中对com.android.support的依赖,防止重复依赖报错
compile (project(':CommonSDK')) { exclude group: "com.android.support" }
compile ('com.jakewharton:butterknife:8.5.1'){
exc[......]

Read more

[转]关于手机音频通信实际开发经验分享

其它相关文章:
android音频口通信(一)——2FSK信号调制
android音频口通信(二)——2FSK信号解调
android音频通信(三)——双向通信(A2B协议)之手机接收
手机音频口通信

一、手机音频通信的特点
1、 通用性强:在智能手机普及的今天,手机的对外通信接口多种多样,而其中以3.5mm的音频接口通用新最强,基本所有的手机、平板电脑都会有这个接口,所以在一些要求通用性的设备上,音频接口登上了舞台。
2、 速率低:由于手机音频部分的采样频率一般为44.1KHZ(部分国产山寨为8KHZ),这极大的限制了音频通讯的速率。我们都知[……]

Read more

[转]在 JNI 编程中避免内存泄漏

本文详细论述如何在 JNI 编程中避免内存泄漏。论述了 JNI 编程中可能引发的明显的内存泄漏。本文的重点是阐述 JNI 编程中潜在的内存泄漏,希望读者通过本文对 Local reference 有更深刻的理解,了解 Local reference 表的存在,区分 Local reference 和局部变量,从而认识到 Local reference 可能引发的 native memory 内存泄漏。

JNI 编程简介

JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 native code 交互——在 Jav[……]

Read more

[转]JNI 对象在函数调用中的生命周期

Java 本地编程接口(Java Native Interface,JNI) 易懂且容易上手,但对于一些新手甚至于一些中级开发者,在编程中都没有把 JNI 对象的生命周期考虑在内。以至于经常碰见莫名的 Crash,或者 segmentation fault。在花费了相当精力去调试后,才发现是 JNI 对象使用不当,当初保存的 JNI 对象已经被系统回收,却仍试图去使用之。本文结合实际开发中遇到的此类问题,讲述和强调了 JNI 对象生命周期的概念,并提出正确的解决方法,希望能和读者分享自己的经验和教训。

问题

在 JNI 编程中常需要从一个普通的 C/C++ 函数中调用 JNI 方法,比如:[……]

Read more

[转]拉卡拉手机刷卡器音频通讯技术原理初步分析

1. 拉卡拉刷卡器
拉卡拉
大家都知道,拉卡拉就是一个手机刷卡器。拉卡卡、智能手机、拉卡拉软件、网络,构成了一个完整的、更强大的POS系统。为什么说更强大呢?因为在手机应用app的这一层,拉卡拉可以做很多很多方便的功能,这样借助于类似传统的刷卡服务,提供一系列现在支付宝也正在大力发展的生活服务等功能。而这个是银联的POS所严重缺乏的。目前来说,移动支付里,最方便的肯定是支付宝的快捷支付;但考虑国内目前的安全环境,用户把银行卡和密码托管给一个网站来管理,明显不如用的时候输入一下的方式更能被接受。相对于更安全的支付宝加网银的方式,拉卡拉做到了与发卡行无关,这样也不需要手机上安装各种不同的银行的网银客[……]

Read more

Shell将内容输出到粘贴板

将Shell里输出的内容,直接复制到粘贴板,不用再选中,command + c

Mac下

#复制到粘贴板
echo $PATH | pbcopy
#粘贴板输出到Shell
echo $(pbpaste -prefer text)

Mac:用OmniGraffle画函数流程图

打开OmniGraffle之后,选择“文件”->“资源浏览器”->“型版”->“流程图”,双击打开。

在新打开的页面中,就可以看到我们熟悉的,函数流程图中需要的各种模块了。

复制需要的模块,粘贴到新建的画布上就可以了。

如果在上述的菜单下,找不到“流程图”的型版,可以点击“型版”页面,右下角的“设置”菜单,选择“恢复”->“型版”->“软件”->“流程图”,来恢复。

Posted in Mac

Shell导出SVN上两个给定的节点间修改的文件

在SVN工程的根目录下执行

#!/bin/sh

#功能:导出SVN上两个给定的节点间修改的文件,输出到指定的目录中
#示例:sh svn_export_diff.sh rev1 rev2 outFolder

#获取SVN服务器地址
url=`svn info|awk -F ': ' '{if($1 == "URL"){print $2}}'`
#结尾添加斜杠/
SVN_ROOT=$url"/"
echo $SVN_ROOT

if [ $# -eq 3 ];then
svn diff --summarize -r $1:$2|awk '{print $[......]

Read more

Shell导出SVN目录下所有本地修改的文件


#!/bin/bash

#功能:导出本地修改的文件
#需要指定存放拷贝文件的目标目录,例如
#sh svn_export_local_files.sh ~/Downloads/temp/

files=`svn status | awk -F ' ' '{print $2}'`

n=0
for file in $files
do
#创建目录
d=${file%/*}
if [ -d "$d" ];then
mkdir -p $1$d
fi

#拷贝文件
if [ -f "$file" ];then
cp $file $1$file
fi
((n[......]

Read more

Shell从带路径的字符串中获取文件名


var1=/usr/lib/abcdefg.so.bak
var2=/usr/sbin/ifconfiggg
all_name=`basename $var1`
sub_name1=`basename $var1 .bak`
sub_name2=`basename $var2 gg`

echo "all_name: $all_name" #all_name: abcdefg.so.bak
echo "sub_name1: $sub_name1" #sub_name1: abcdefg.so
echo "sub_name2: $sub_name2"[......]

Read more