原创 git生成patch文件

1  使用git format-patch生成所需要的patch:當前分支所有超前master的提交:git format-patch -M master某次提交以後的所有patch:git format-patch 4e16   

原创 git rebase

1  如何修改很早以前的commit信息? 首先要git rebase到需要修改message的那個commit的前1個commit。假設commit id是32e0a87f,運行下面的git rebase命令: git rebase -

原创 反編譯Apk中Manifest文件

在apk中的AndroidManifest.xml是經過壓縮的,可以通過“AXMLPrinter2”工具解開,具體命令爲: java -jar AXMLPrinter2.jar AndroidManifest.xml

原创 Android 6.0動態權限管理

1.這個新的運行時權限僅當我們設置targetSdkVersion to 23(這意味着你已經在23上測試通過了)才起作用,當然還要是M系統的手機。app在6.0之前的設備依然使用舊的權限系統。 如果app的targetSdkVer

原创 StatFs類 獲取系統/sdcard存儲空間信息

1. 判斷 SDCard 是否存在,並且是否具有可讀寫權限       staticpublicboolean isExternalStorageAvailable() {      return Environment.getEx

原创 beginDelayedTransition用法

要改變某個控件的位置,可以用修改佈局參數後setLayoutParams,如果想給這個過程加上動畫效果,則可以在父節點上調用TransitionManager.beginDelayedTransition private void c

原创 android:elevation無效

android5.0 引入了Z軸的概念,於是就有着這種風格,也就是目前比較火的Material Design。 1. android:elevation 設置該組件“浮”起來的高度,to難過過設置該屬性可以讓該組件呈現3D效果。

原创 Android Transition

Android Transition Framework可以實現三種效果:不同Activity之間切換時,Activityc的內容(contentView)轉場動畫不同Activity之間切換時,如果使用了Shared Element動

原创 延遲5分鐘執行任務

需求:當前的Activity,按HOME鍵切換到後臺,如果5分鐘都不再使用,則清理資源 實現方式: 1    如果要清理的只是界面上控件的狀態,那麼,可以在界面切換到後臺時,記錄下時間。當界面再次打開時,判斷當前時間與剛纔記錄的時間間隔,

原创 後臺啓動Activity

問題:定時器界面A    定時提醒界面B A正在運行,按HOME鍵被切換到後臺,這時時間到了,應該啓動B界面,這時在桌面再次點擊定時器圖標,則B界面再也不出現。 從log中,發現啓動B界面的請求被忽略了 06-22 17:31:21.89

原创 動態刷新桌面圖標

需求;桌面上的日曆圖標,顯示當天的日期和星期幾 實現:       當前手錶沒有調節時間的功能,是通過與手機藍牙連接後,同步手機的時間。       手錶桌面監聽  ACTION_TIME_TICK  和  ACTION_TIME_CH

原创 CollapsingToolbarLayout

    CollapsingToolbarLayout作用是提供了一個可以摺疊的Toolbar,它繼承至FrameLayout,給它設置layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中

原创 AppBarLayout

AppBarLayout 是繼承LinerLayout實現的一個ViewGroup容器組件,它是爲了Material Design設計的App Bar,支持手勢滑動操作。 默認的AppBarLayout是垂直方向的,它的作用是把App

原创 RecyclerView中的item的match_parent屬性失效問題解決方案

解決方案:     1.  item使用RelativeLayout佈局,並且佈局中的view至少有一個layout_alignParentRight=true     2. 在adapte中的onCreateViewHolder,

原创 java方法引用

方法參數和返回值與Lambda表達式相同時, 使用方法名代替. Observable.from(mManyWords).observeOn(AndroidSchedulers.mainThread()).reduce(this::mer