first

2016年第一篇文章

去年,写的文章很少,发现自己不那么喜欢分享了,也许是没什么东西可以写了。

从13年开始做游戏开发,开始的那一年使用C++,然后慢慢地转向纯Lua开发,虽然中间还会使用C++,Java,ObjC来做一些与平台相关的开发。

最近这几天因为要帮另一个项目组做一个Android的App,然后就开始使用一个新的技术,例如Dagger2,RxJava,OkHttp等,离开Android开发接近3年,发现Android开发的方式变化太大了,差点儿跟不起来,现在只能是参考Github上的例子,还有一些其它人分享的文章,一个领域如果不去关注一段时间,再回过头来就会发现变化会非常非常大。

只有保持对每个技术变化的观察,才能更好地把握机会。

希望16年,自己可以保持每周一篇文章。

gradle 配置参数

manifestPlaceholders 的使用


build.gradle

android {
    defaultConfig {
        ...
        manifestPlaceholders += [foo: "abc"]
        manifestPlaceholders += [foo2: "def"]
    }

    buildTypes {
        release {
            manifestPlaceholders += [foo2: "def123566"]
        }
    }
}

AndroidManifest.xml

<meta-data
    android:name="blog"
    android:value="${foo}" />
<meta-data
    android:name="linguofeng.com"
    android:value="${foo2}" />

buildConfigField 的使用


build.gradle

android {
    defaultConfig {
        ...
        buildConfigField "boolean", "LOG_DEBUG", "true"
        buildConfigField "String", "LOG_NAME", "\"linguofeng.com\""
    }

    buildTypes {
        release {
            buildConfigField "String", "LOG_NAME", "\"blog.linguofeng.com\""
        }
    }
}

BuildConfig.java 该文件会自动生成

public final class BuildConfig {
    // ...
    // Fields from default config.
    public static final boolean LOG_DEBUG = true;
    public static final String LOG_NAME = "linguofeng.com";
}

MyClass.java

if (BuildConfig.LOG_DEBUG) {
    // print log
}

resValue 的使用


build.gradle

android {
    defaultConfig {
        resValue "string", "name", "linguofeng"
    }

    buildTypes {
        release {
            resValue "string", "name", "linguofeng.com"
        }
    }
}

AndroidManifest.xml

<application android:label="@string/name" />

Gradle Daemon

touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties

http://tools.android.com/tech-docs/new-build-system

xcode-license

服务器升级完xcode后,运行终端命令时会提示

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

只要执行下面的命令后就可以了。

$ sudo xcodebuild -license

https://intellij-support.jetbrains.com/hc/en-us/articles/206827657-Mac-OSX-can-t-start-Git-after-updating-Mac-OS-XCode

配置Github Pages的https

首先申请 https://www.cloudflare.com,把dns服务换成cloudflare的,我原来是使用dnspod的,为了使用https我就直接换了。

它会把之前的dns记录复制过来,直接替换就可以了。设置成功后,等待几分钟,使用 https://linguofeng.com 就可以访问我的网站了。

  • 一定要把dnspod里的解析停掉,要不么会有问题。

然后是修改_config.yml

url: https://blog.linguofeng.com
enforce_ssl: blog.linguofeng.com

修改index.html

<link rel="canonical" href="http://blog.linguofeng.com/archive/2015/09/22/set-up-ssl-on-github-pages.html" />
<script type="text/javascript">
    var host = "blog.linguofeng.com";
    if ((host == window.location.host) && (window.location.protocol != "https:"))
        window.location.protocol = "https";
</script>

提交,然后刷新。

完成

参考: https://sheharyar.me/blog/free-ssl-for-github-pages-with-custom-domains/

Mono Hello World

1.安装

$ brew install mono

2.创建Hello.cs

$ mkdir mono-workspace
$ cd mono-workspace
$ vim Hello.cs
using System;

public class Hello {
    public static void Main() {
        Console.WriteLine("Hello linguofeng.com!!")
    }
}

3.编译

$ mcs Hello.cs

4.执行

$ mono Hello.exe

参考: http://logicalgenetics.com/raspberry-pi-and-mono-hello-world/