原创 Java 通過工廠模式和接口泛型實現完全解耦

首先我們假設: 有一個農民(farmer) 有一本菜譜(cookbook),爲了方便理解菜譜只有炸雞這一個菜 假設這是程序的兩部分,分別可以被單獨複用.並且農民被複用時有時需要菜譜上的函數做飯,有時忙不過來,就不按照菜譜做飯了

原创 C語言特殊/古老的函數定義方法

int add(a, b) int a; int b; { return a + b; } 這是K&R C 現在使用的大多是ANSI C

原创 Android 各種依賴各種version間的關係

大體就是 任何版本的as在安裝sdk後都可以開發任何版本的android 但是低版本的as不支持高版本的gradle android plugin 所以高版本as的一些功能如instant run低版本不支持 gradle an

原创 徹底刪除/替換git遠程倉庫

coding.net收費了…如何重複利用以前的倉庫呢? 很簡單,將某個工程向現在的倉庫強制推送即可 $ git remote add origin <url> $ git push --force --set-upstream

原创 Android自定義view最小刷新時間爲16ms問題

從安卓4.1以後,安卓框架所有的繪圖和動畫統一使用VSYNC計時鎖定16ms響應,所以自定義view中的刷新時間一般是16ms.

原创 2017最最最最新的Android發佈aar給別人使用方法

目測現在網上發佈aar的方法的教程都是一個版本,也就是maven-plugin爲1.3,jfrog爲1.0那個版本,老掉牙了有木有,還是自己寫個給自己備用吧。授之以魚不如授之以肉,從頭開始流程走一遍。 零、新建項目 新建一個項

原创 解決OKHttp不能自動緩存header cookies 裏的 sessionid

由於app要實現登錄緩存功能,但驚訝的發現不經過設置okHttp是不會自動管理header的. 官網的文檔也是醉了,找了半天沒看懂怎麼搞. 其實實現自動管理cookie很簡單很簡單,在OkHttp的builder中加上個.cook

原创 Android 自定義view 隨着刷新次數變多而變慢

是這樣,我做了兩個自定義View,位於同一個Linearlayout中,第一個view刷新的時候,系統也調用了第二個自定義view的ondraw(),但是我要頻繁刷新第一個view,但隨着刷新次數變多,兩個view都越變越慢,所以

原创 Coding.net 自動分析Android代碼錯誤集合

一. 註釋代碼不應該保留而應該使用版本控制工具查找. 二. 使用System.exit()會造成應用重啓,因爲操作系統會以爲是不正常退出. 三. 各種Stream應該正確的關掉. 模板爲: private void readT

原创 Android 全局變量命名規範及其它規範

來自Android 源碼貢獻規範,建議可以FQ的同學直接看英文原版。 使用空格縮進 代碼塊使用4個空格縮進,不要使用tab。當不確定的時候,與周圍代碼保持一致。 一行代碼太長需要另起一行時,使用8個空格縮進, 包括函數的調用

原创 Android 啓動速度優化

1.在style中設置background圖片作爲啓動圖片,表面看快了不少. <item name="android:windowBackground">@color/immersion</item> 2.layout中不使用an

原创 Android退到後臺後藍牙連接速度變慢原因

是因爲安卓5.0對其喚醒功能,以及安卓6.0的Doze嗜睡模式造成的. 對其喚醒就是一堆app隔一段時間同時喚醒而不是每個都喚醒. 嗜睡模式中,系統會延緩應用的任務,同步,和標準alarm.插上電源,點亮屏幕的時候就會回到正常

原创 解決Qt5 安裝Opengl後依然出現/usr/bin/ld: cannot find lGL

網上查到了各種apt-get,但是安裝N遍,reinstall N遍,依然沒用。 然後locate libGL 定位在 /usr/lib/libGL.so.1 試了試 sudo ln -s /usr/lib/libGL.so.1

原创 Android Studio 過濾掉指定log

^(?!.*(你要過濾掉的tag)).*$ 起因是我想過濾掉魅藍note無窮無盡的 D/Surface:Surface::setBuffersDimensions(this=0x7f89e1b600,w=1080,h=192

原创 gcc/g++最簡單編譯當前目錄下所有文件

gcc ./* -o output 是的你沒看錯就是可以用./*代指當前目錄下所有文件