Archive for September, 2016

作者:AngryFox 分类: Uncategorized September 25th, 2016 暂无评论

Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
Gradle这个工具集成了构建,测试,发布和其他,比如软件打包,生成注释文档等功能。
之前eclipse使用ant进行软件的构建功能,需要配置一大堆的xml,但是在gradle中就不需要了。

目前主流的打包方式有ant,maven,gradle。gradle是近几年发展起来的自动化构建工具,解决ant构建上的繁琐代码。
比如在ant上发布多渠道的包,你需要自己写脚本替换渠道名称,而在gradle中就不需要了。已经内建支持多渠道打包。

Gradle的文件结构

./build.gradle
./gradle.properties
./gradlew
./gradlew.bat
./local.properties
./setting.gradle
./XXX.iml
./app/build.gradle
./app/app.iml
./app/proguard-rules.pro
./builld.gradle 和 ./app/build.grade

gradle项目自动编译的时候要读取的配置文件。比如指定项目的依赖包等。
build.grade有两个,一个是全局的,一个是在模块里面。
全局的build.grade主要设置的是声明仓库源,gradle的版本号说明等。

./build.gradle

buildscript {
repositories {
// 声明仓库源,比如我们构建了一个安卓的库,现在想要把库上传到jcenter中供别人一起使用,则可以上传到jcenter中
// 具体上传步骤见:http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2015/0227/2502.html
jcenter()
}
dependencies {
// 说明gradle的版本号
classpath ‘com.android.tools.build:gradle:1.3.0′

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

// 所有项目都继承这个配置
allprojects {
repositories {
mavenLocal()
jcenter()
}
}
./app/build.grade 设置了模块的gradle构建配置

// 说明这个模块是安卓项目,如果是多模块开发,有可能有的值为java/war
apply plugin: ‘com.android.application’

// 配置了所有android构建的参数
android {
// 编译使用SDK版本
compileSdkVersion 23
// 编译工具的版本
buildToolsVersion “23.0.1″

defaultConfig {
// 包名
applicationId “com.awesomeproject”
// sdk最低支持版本
minSdkVersion 16
// 目标SDK版本,如果目标设备的API版本正好等于此数值,就不会为此程序开启兼容性检查判断的工作
targetSdkVersion 22
// 版本号
versionCode 1
versionName “1.0″
// 原生
ndk {
abiFilters “armeabi-v7a”, “x86″
}
}
buildTypes {
// 发布时候的设置
release {
// 是否进行混淆
minifyEnabled false
// 混淆使用文件
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}
}

// 依赖的工具包
dependencies {
compile fileTree(dir: ‘libs’, include: ['*.jar'])
compile ‘com.android.support:appcompat-v7:23.0.0′
compile ‘com.facebook.react:react-native:0.11.+’
}
./app/proguard-rules.pro
这个和上面说的一样混淆文件

./gradle.properties
grade的运行环境配置,比如使用多少内存之类的。

./gradlew 和 ./gradlew.bat
自动完成 gradle 环境的脚本,在linux和mac下直接运行gradlew会自动完成gradle环境的搭建。

./local.properties
配置SDK或者NDK的环境路径,各个机器上这个变量可能都是不一样的,所以不应该进入版本库

./setting.gradle
整个项目的管理,比如这个项目包含哪些模块等。

./XXX.iml 和 ./app/app.iml
iml是Intellij模块文件。Intellij是一款JAVA的IDE。Android Studio是基于开源的Intellij IDEA开发出来的IDE。
所以Android Studio有的IDE功能是需要有.iml才能使用的。比如我们删除了iml文件,可能就在Android Studio中看不到一些目录了。

作者:AngryFox 分类: Uncategorized September 17th, 2016 暂无评论

一、站点版
(一)、企业站

1.搜狐:http://mirrors.sohu.com/
2.网易:http://mirrors.163.com/
3.阿里云:http://mirrors.aliyun.com/
4.腾讯:http://android-mirror.bugly.qq.com:8080/(仅针对APP开发的软件,限流,不推荐)

(二)、教育站

1.上海交通大学:http://ftp.sjtu.edu.cn/html/resources.xml(部分移动运营商出口状况不佳,无法访问)
2.华中科技大学:http://mirror.hust.edu.cn/(当前已用容量估计:4.83T)
3.清华大学:http://mirrors.tuna.tsinghua.edu.cn/(当前已用容量估计:9.8T)
4.北京理工大学:http://mirror.bit.edu.cn/web/
5.兰州大学:http://mirror.lzu.edu.cn/
6.中国科技大学:http://mirrors.ustc.edu.cn/(当前已用容量估计:21.32T)
7.大连东软信息学院:http://mirrors.neusoft.edu.cn/(当前已用容量估计:2.5T)
8.东北大学:http://mirror.neu.edu.cn/
9.大连理工大学:http://mirror.dlut.edu.cn/
10.哈尔滨工业大学:http://run.hit.edu.cn/html/(部分联通运营商出口状况不佳,无法访问)
11.北京交通大学:http://mirror.bjtu.edu.cn/cn/
12.天津大学:http://mirror.tju.edu.cn(无法访问,ping超时)
13.中国地质大学:http://mirrors.cug.edu.cn/(当前已用容量估计:2.3T)
14.浙江大学:http://mirrors.zju.edu.cn/
15.厦门大学:http://mirrors.xmu.edu.cn/
16.中山大学:http://mirror.sysu.edu.cn/
17.重庆大学:http://mirrors.cqu.edu.cn/(当前已用容量估计:3.93T)
18.北京化工大学:http://ubuntu.buct.edu.cn/(Android SDK镜像仅供校内使用,当前已用容量估计:1.72T)
19.南阳理工学院:http://mirror.nyist.edu.cn/
20.中国科学院:http://www.opencas.org/mirrors/
21.电子科技大学:http://ubuntu.uestc.edu.cn/(无法访问,ping超时)
22.电子科技大学星辰工作室:http://mirrors.stuhome.net/(当前已用容量估计:1.08T)
23.西北农林科技大学:http://mirrors.nwsuaf.edu.cn/(只做CentOS镜像,当前已用容量估计:140GB)

(三)、其他

1.首都在线科技股份有限公司(英文名Capital Online Data Service):http://mirrors.yun-idc.com/
2.中国电信天翼云:http://mirrors.ctyun.cn/
3.noc.im:http://mirrors.noc.im/(当前已用容量估计:3.74T)
4.常州贝特康姆软件技术有限公司:http://centos.bitcomm.cn/(只做CentOS镜像,当前已用容量估计:140GB)
5.公云PubYun(母公司为贝特康姆):http://mirrors.pubyun.com/
6.Linux运维派:http://mirrors.skyshe.cn/(使用阿里云服务器,界面使用浙江大学的模板,首页维护,内容可访问)
7.中国互联网络信息中心:http://mirrors.cnnic.cn/(只做Apache镜像,当前已用容量估计:120GB)
8.Fayea工作室:http://apache.fayea.com/(只做Apache镜像,当前已用容量估计:120GB)

二、软件版

(一)、操作系统类

1.Ubuntu
阿里云:http://mirrors.aliyun.com/ubuntu-releases/
网易:http://mirrors.163.com/ubuntu-releases/
搜狐:http://mirrors.sohu.com/ubuntu-releases/(搜狐在12年之后似乎不同步了)
首都在线科技股份有限公司:http://mirrors.yun-idc.com/ubuntu-releases/

2.centos
网易:http://mirrors.163.com/centos/
搜狐:http://mirrors.sohu.com/centos/
阿里云:http://mirrors.aliyun.com/centos/

(二)、服务器类

1.tomcat、Apache
中国互联网络信息中心:http://mirrors.cnnic.cn/apache/
华中科技大学:http://mirrors.hust.edu.cn/apache/
北京理工大学:http://mirror.bit.edu.cn/apache/

2.MySQL
北京理工大学:http://mirror.bit.edu.cn/mysql/Downloads/
中国电信天翼云:http://mirrors.ctyun.cn/Mysql/

3.PostgreSQL
浙江大学:http://mirrors.zju.edu.cn/postgresql/

4.MariaDB
中国电信天翼云:http://mirrors.ctyun.cn/MariaDB/

5.VideoLAN
大连东软信息学院:http://mirrors.neusoft.edu.cn/videolan/
中国科技大学:http://mirrors.ustc.edu.cn/videolan-ftp/

(三)、开发工具类

1.eclipse
中国科技大学:http://mirrors.ustc.edu.cn/eclipse/
中国科学院:http://mirrors.opencas.cn/eclipse/
东北大学:http://ftp.neu.edu.cn/mirrors/eclipse/,http://mirror.neu.edu.cn/eclipse/

2.安卓SDK
中国科学院:http://mirrors.opencas.ac.cn/android/repository/
南洋理工学院:http://mirror.nyist.edu.cn/android/repository/
中国科学院:http://mirrors.opencas.cn/android/repository/
腾讯:http://android-mirror.bugly.qq.com:8080/android/repository/(限流,不推荐)
大连东软信息学院:http://mirrors.neusoft.edu.cn/android/repository/(同步效果不如中科院的镜像,不推荐)

3.Xcode
腾讯:http://android-mirror.bugly.qq.com:8080/Xcode/(从7.2之后不再更新,建议直接从官网下载)

三、官方镜像列表状态地址

CentOS:http://mirror-status.centos.org/#cn
Archlinux:https://www.archlinux.org/mirrors/status/
Ubuntu:https://launchpad.net/ubuntu/+cdmirrors
Debian:http://mirror.debian.org/status.html
Fedora Linux/Fedora EPEL:https://admin.fedoraproject.org/mirrormanager/mirrors
Apache:http://www.apache.org/mirrors/#cn
Cygwin:https://www.cygwin.com/mirrors.html

作者:AngryFox 分类: Uncategorized September 17th, 2016 暂无评论

操作系统 :Centos※,Ubuntu,Redhat※,suse,Freebsd
网站服务 :nginx※,apache※,tomcat※,lighttpd,php※,resin※
数据库 :MySQL※,Mysql-proxy,MariaDB,PostgreSQL
DB中间件:MyCat,amoeba,MySQL-proxy
代理相关:lvs,keepalived,haproxy,nginx,apache,heartbeat(此行都是※)
网站缓存:squid※,nginx※,varnish

NOSQL库:memcached※,memcachedb,TokyoTyrant※,MongoDB※,Cassandra※,redis※,CouchDB
存储相关:Nfs※,Moosefs(mfs)※,Hadoop※,glusterfs※,lustre,FastDFS
版本管理:svn※,git※
监控报警:nagios※,cacti※,zabbix※,munin,hyperic,mrtg,graphite
域名解析:bind※,powerdns,dnsmasq※
同步软件:rsync※,inotify※,sersync※,drbd※,csync2,union,lsyncd,scp※
批量管理:ssh+rsync+sersync※,Saltstack※,expect※,puppet※,ansible,cfengine
虚拟化 :kvm※,xen※
云计算 :openstack※,docker,cloudstack
内网软件:iptables※,zebra※,iftraf,ntop※,tc※,iftop
邮件软件:qmail,posfix※,sendmail
远程拨号:openvpn※,pptp,openswan※,ipip※
统一认证:openldap(可结合微软活动目录)※
队列工具:ActiveMQ,RabbitMQ※,Metaq,MemcacheQ,Zeromq
打包发布:mvn※,ants※,jenkins※,svn
测试软件:ab,smokeping,siege,JMeter,Webbench,LoadRunner,http_load(都是※)
日志相关:syslog,rsyslog,Awstats,flume logstash scribe kafka,storm,ELK(Elasticsearch+Logstash+Kibana)
DB代理:mysql-proxy,amoeba(更多还是程序实现读写分离)
搜索软件:Sphinx,Xapian(大公司会自己开发类似百度的小规模内部搜索引擎)

作者:AngryFox 分类: Uncategorized September 16th, 2016 暂无评论
mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’

解决方法:

从123行开始修改此文件mpeg4ip.h,到129行结束。
修改前:
#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif

修改后:
#ifdef __cplusplus
extern "C++" {
#endif
const char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
作者:AngryFox 分类: Uncategorized September 12th, 2016 暂无评论

HLS是苹果推出的一项技术,主要是能够利用http服务器,以http的方式传输音视频文件,由于音视频文件都分割的足够小,所以下载也足够快的情况下,可以认为就相当于实时直播,相对于RTSP/RTMP这种实时的音视频传输来讲,TA不是最实时的。

直播的整个流程大概是这样:
采集视频源和音频源
对视频源H264编码,对音频源AAC编码
分割为TS文件
组装M3U8文件
Http传输以及部署到CDN
M3U8其实是一个索引文件,就像一个TXT一样,后缀名叫M3U,只不过是以UTF-8来编码的,所以命名为M3U8。

TA当中每一段描述了一段TS,TS是分割的十分小的已经编码好的音视频文件,可以直接播放,M3U8就描述了,比如一共10个TS文件,每段多长时间,地址是什么类似的信息。
TS文件可以无缝衔接,而MP4之类的文件很可能产生衔接过程闪动、黑屏等等原因。
HLS方式的主要优点就是利用了标准的Http技术,复用了当前标准的代理服务器和CDN这些成熟的技术,使得直播部署就像简单的下载服务器的部署一样

第一:Free Schema意味着重复Schema。在MongoDB数据存储的时候,不但要存储数据本身,Schema(字段key)本身也要重复的存储(例如:{“name”:”zhuanzhuan”, “infoid”:1,“infocontent”:”这个是转转商品”}),必然会造成存储空间的增大。
第二:Free Schema意味着All Schema,任何一个需要调用MongoDB数据存储的地方都需要记录数据存储的Schema,这样才能较好的解析和处理,必然会造成业务应用方的复杂度。

业务热点数据和索引的总量要能全部放入内存中,即:Memory > Index + Hot Data
所有业务都做到“无状态”和“异步化”
iOS 10 增加了新的安全设定。 如果要访问相机 相册 麦克风需要在 info.plist 内增加条目

根据控制台的提示,我们需要在plist文件添加相应的字段
相机权限
添加key字段NSCameraUsageDescription,string类型,value字段是给用户的提示文字,例如“我们需要使用您的相机“
通信录
NSContactsUsageDescription
麦克风
NSMicrophoneUsageDescription
相册
NSPhotoLibraryUsageDescription