原创 gradle plugin調試

假設我們這裏是開發一個按照如下方式依賴的annotationProcessor // app模塊build.gradle annotationProcessor project(":router-compiler") 調試該插件

原创 配置npm普通用戶全局安裝

在linux或者osx環境下,由於npm全局安裝的默認目錄普通用戶不可寫入,導致很多用戶使用root安裝,後期普通需要使用root用戶操作,帶來諸多不便。 以下描述如何將npm包存放在當前用戶的主目錄.npm-packages中

原创 RxJava 2 (二) 基本原理

在上一篇文章中,我基於Obervable類介紹了RxJava的基本用法,再貼一遍代碼 Observable.just("hello") // 代碼1:創建observabl

原创 android appwidget service的初始化

開機之後在system server創建AppWidgetService的實例,並調用AppWidgetService的SystemRunning方法,代碼位於frameworks/base/services/java/com/andro

原创 android Parcelable類

android Parcelable類表示該類可以用來序列化,打包爲數據流對象Parcel,通常用於進程間通信傳遞自定義數據類型。 Parcel也相應的提供了一系列write/get方法方便打包和解包Parcel類。 需要實現的方法主要

原创 圖片加載

加載圖片到ImageView中 通常我們並不知道圖片有多大,所以最好的做法是先讀取圖片的尺寸,然後決定需要按照原圖片的多少倍來縮放圖片,最後加載到內存中 1. 讀取圖片的尺寸,依據圖片的提供形式,可以採用BitmapFactory.dec

原创 android開發環境網絡代理設置

針對android開發環境的更新經常會出現連接問題,所以最好的做法是全部設置代理。這裏以eclipse爲例描述如何設置代理。 需要設置代理的地方有兩個 1. eclipse的網絡代理,更新ADT插件時會用到 進入eclipse-->Wi

原创 git 命令常見用法

1. git的配置 配置提交信息 git config --global user.name w_xue git config --global user.email [email protected] 配置顏色 git config --

原创 ubuntu搭建內部NTP服務器

NTP服務器是用於網絡時間同步的服務器,通常它是作爲一箇中繼服務器,從上層服務器獲取時間,然後將時間同步給其它機器。 1. 安裝 在ubuntu平臺上,直接安裝ntp包即可 sudo apt-get install ntp 2. 啓動服

原创 sh執行shell腳本出現語法錯誤

今天調試一個腳本,用./的方式直接運行腳本沒有發現任何問題,但是當我用如下命令打印調試信息的時候就會發現各種問題: sh -x sample.sh 下面給出sample.sh #!/bin/bash hello(){     echo

原创 apk反編譯

針對沒有混淆的android應用,我們可以很方便的做到反編譯查看源代碼以及修改源代碼,主要用到工具爲apktool,dex2jar和jd-gui。 1. apktool 下載地址:https://code.google.com/p/an

原创 ubuntu安裝多版本JDK

我目前的系統默認安裝openJDK 1.7,但是編譯android source code要求JDK版本爲1.6 1. 下載JDK 直接通過搜索進入oracle官網下載對應的版本即可,我這裏下載的是jdk-6u45-linux-x64.b

原创 android點擊EditText外區域收起鍵盤

在日常開發中,Activity中可能有比較複雜的佈局,比如嵌套很多Fragment,所以針對該需求,通常的做法爲放到Activity中統一處理。 常規思路爲在dispatchTouchEvent中不攔截MotionEvent,但是

原创 adb一直提示無法連接

在實際開發中,經常遇到手機顯示usb調試已連接,但是android studio中提示找不到設備。在終端中執行adb shell同樣提示找不到設備。 搜索排查發現,需要採用如下命令啓動adb方可看到錯誤信息 adb nodaem

原创 Jetpack Room使用

Room是安卓官方orm框架,用於簡化Sqlite數據庫的相關操作。使用Room通常步驟如下 聲明依賴 定義數據庫表,DAO,數據庫類及升級策略 操作數據庫 引入依賴 引入google官方maven倉庫 allprojects {