原创 c++中類型的隱式轉換。

在滿足下條件時,編譯器纔會使用隱式轉換: 1,存在匹配的構造函數。 如:class A { public: A(B); }; // A  a=B; 2,存在聲明的轉換操作符: class B { public: operator

原创 利用觀察者模式實現data和ui的獨立演化

1,push版本。 2,pull版本。 待續。。

原创 android移植ffmpeg的編譯

一,ffmpeg編譯(版本ffmpeg-HEAD-b2ad33d.tar) 1,安裝彙編編譯器[sudo apt-get install yasm]. 2,ffmpeg根目錄放編譯腳本build_android.sh內容如下:(備註:N

原创 使用橋接模式讓兩個抽象層級能夠獨立的演化。

1,A是一個抽象類,它HAS-A抽象類B. A有不同的實現類,B也有不同的實現類。見下面簡畫的圖: 使用橋接模式可以讓A和B這兩個抽象層級獨立的變化和擴展而不會相互影響。在客戶端調用時採用下面的形式比較靈活,並且功能可插拔: void

原创 jni.h

<pre name="code" class="html">二,Android jni簽名類型: 類型 符號 boolean Z byte B char C short S int I long J float F dou

原创 【android安全】之防止apk被篡改後重編譯。

現狀:很多apk會被黑客反編譯成smali文件,然後修改或植入惡意代碼後重新編譯成apk發佈到市場。 解決要點: 1,代碼混淆。可使用高級商用混淆工具DexGuard。(此法容易被攻破) 2,apk運行時進行簽名驗證和crc校驗碼驗證。(

原创 Android中attr自定義屬性詳解

Android中attr自定義屬性詳解(轉至:http://googlers.iteye.com/blog/1122585) 博客分類:  android  <LinearLayout xmlns:android="http:/

原创 android 開源組件

1,滾輪選擇器,wheelPicker。 https://github.com/ai212983/android-spinnerwheel 2,支持header的list。 https://github.com/emilsjolande

原创 android 實現文字自動滾動的走馬燈效果。

紅色爲關鍵代碼。 1,textview設置:   <TextView             android:id="@+id/tvAutoScroll"             android:layout_width="50dp"  

原创 面向對象就是面向生活,而模式就是解決生活中特定問題的最佳實踐。

1,模式源於生活而又服務於生活。 2,面向對象編程就是面向生活編程,所以生活中的問題都有一個對應的面向對象結構。 3,爲什麼面向對象能解決大規模的軟件設計?因爲面向對象是生活中問題的一一映射。生活中出現的問題均可一一映射成對象結構。 關

原创 利用迭代器,適配器模式實現統一數據訪問接口。

package com.iterator; public interface Iter { int next(); boolean hasNext(); } package com.iterator; public cla

原创 javah生成jni頭文件

  執行: 方法一, cd   項目\bin\classes javah  -jni  完整帶包類名   (此時生成的頭文件在classes目錄下) 方法二,javah -classpath C:\Users\lchli\workspa

原创 實用軟件開發流程

1,取得需求。 2,從需求歸納出用例列表或功能列表。 3,採用用例驅動或功能驅動進行代碼片段實現(可包含類圖的設計)。 用例驅動:指讓一個使用流程通過(往往包含多個功能)。 功能驅動:指讓一個獨立的具體功能通過。 4,tdd測試讓每

原创 淺談c++複製構造函數和賦值操作符。

何時調用: 1,如果變量沒有聲明過,那麼將會調用複製構造函數。如: A a; A a2=a;//調用複製構造函數將a複製到a2. 2,如果變量已經聲明過,將會調用賦值操作符。 A a; A a2; a2=a;//調用賦值操作符將a的值複

原创 【android安全】之使用ssl驗證保護網絡數據傳輸安全。

SSL pinning 限定受信SSL的範圍。 https協議驗證服務器身份的方式通常有三種,一是根據瀏覽器或者說操作系統(Android)自帶的證書鏈;二是使用自簽名證書;三是自簽名證書加上SSL Pinning特性。第一種需要到