LapseIt 延时摄影
去年有慢动作镜头,今年有延时摄影。
给我一个阳台,一个排插一个wifi,我要坐一下午。
去年有慢动作镜头,今年有延时摄影。
给我一个阳台,一个排插一个wifi,我要坐一下午。
服务端开始准备改造成Restuful风格API.
旧版本采用if else对请求判断分发的机制太丑陋,
选用了CodeIgniter框架。
使用插件:
https://github.com/chriskacerguis/codeigniter-restserver
因为使用了CodeIgniter的SAE版本,避免配置破坏,所以只复制插件目录下的三个文件。
config/rest.php
libraries/Format.php
libraries/Rest_Controller.php
根据官方示例编码自己的RestController。
使用Digest认证
http://zh.wikipedia.org/wiki/HTTP摘要认证
|
|
配置完参数后,该框架讲使用libraries文件夹下面的auth类名,通过login方法进行验证请求是否有效。
login方法必须含有两个参数
并且在digest认证下,必须返回md5(username:realm:password)组合后的字符串,框架会自行对请求中的参数头进行验证是否与该串一致。
例如如下代码将通过用户名admin与密码1234的用户通过验证。
<?php
class auth
{
public function login($username, $password)
{
return md5('admin' . ':' . "REST API" . ":1234");
}
}
如果使用Basic认证,只需要将rest_auth配置切换成basic并且在login中返回true、false对应成功与失败即可。
使用MRD可使用远程版本的Office,模拟Ofiice
http://pan.baidu.com/s/1ntzECn3
由于项目的版本越来越多,分支越来越多,不同的版本可能在界面上需要使用不同的图标,不同的背景,不同的界面元素高度。
为了实现界面的可配置化,需要在子工程中定义一套方案,使得主工程中对这些界面元素可配置。
具体步骤如下:
定义Lib主题的attr
|
|
Lib中使用libTheme指定的style
|
|
配置build.gradle
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://192.168.1.30:8081/nexus/content/repositories/snapshots"){
authentication(userName: mavenUser, password: mavenPass)
}
pom.version = "1.0.0-SNAPSHOT"
pom.artifactId = "utillibrary"
pom.groupId = "com.nd.android.u.lib"
}
}
}
gradle同步后Gradle视图中新增uploadArchives任务
打开Gradle视图双击该任务
代码中mavenUser可在Gradle主目录中新增gradle.properties配置
mavenUser = xxxx
mavenPass = xxx
https://developer.android.com/tools/building/multidex.html
官方在build tool 21.1.0后正式推出分包打包解决方法数量超标65535问题。
dex分包原理:
http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html
原理既在编译期将dex分散在多个中,运行期,解压出其他dex并让classloader尝试加载
主要步骤:
增加依赖
compile 'com.android.support:multidex:1.0.0'
配置开关
defaultConfig {
multiDexEnabled true
}
相比在该版本推出前,打包过程多了几个步骤,
积累更为高效的Android编码习惯。
Android Studio修改自IntelliJ
IntelliJ不支持评论模板,
需安装插件Javadocs.
该插件暂不支持用户名与时间可设置,
修改插件增加两个模板参数
$date、$author
https://github.com/eyyoung/intellij-javadocs
插件下载
利用默认的目录结构无需配置不同版本的工程目录结构
只需在src\main的同级目录下新建渠道名称
依赖的模块在构建时如果存在多版本,应该指明使用什么版本或者模块里头配置defaultPublishConfig属性
方案一:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.0'
flavorOneCompile project(path: ':testmoduleone', configuration: 'flavorOneDebug')
// flavorOneCompile project(path: ':testmoduleone', configuration: 'flavorOneRelease')
flavorTwoCompile project(path: ':testmoduleone', configuration: 'flavorTwoDebug')
}
方案二:
android {
defaultPublishConfig "flavorOneDebug"
}
运行阶段在Build Variant窗口进行选择运行何种版本
新版本Build Tool在编译旧项目时出现
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
警告。
解决方法:
安装ImageMagick,并将安装路劲配置到系统环境变量
http://www.imagemagick.org/script/binary-releases.php#windows
新建后缀名为.ps1的PowerShell脚本
Get-ChildItem . *.png -Recurse| ForEach-Object -Process{
if($_ -is [System.IO.FileInfo]){
convert $_.FullName -strip $_.FullName;
Write-Host($_.FullName);
}
}
保存到工程目录,右键点击脚本文件使用PowerShell运行
等待完成。
如果脚本无法运行,在PowerShell中使用set-executionpolicy remotesigned设置成允许未签名脚本执行
PowerShell签名策略:
help about_signing