題記) 望着你安睡,就像望着一朵玫瑰,月光的晴輝晚風的輕吹,讓你顯得那樣美。
閑了幾天,也就是兩三天,基本穩定在8:30之前走出公司門,那是一個天空布滿霧霾的下午,一個右下角彈出的騰訊的新聞吸引了我。
那是一個很平常的新聞,不過是又一個大學生丟了,不見了。
這樣的情況很常見,習慣就好。
可是總覺得少了點什么。。
遐想)記得小時老師說,如果不努力,長大了就會進入難民窖,可是,難民窖的人就不努力么,錯了,他們比任何人都拼命,為了生活他們通常通宵不眠。
可是,他們的生活依舊沒有什么改善。。
切入點)看到這個妹子失蹤,就在想如果能夠知道她在哪兒該多好,於是突發奇想如果有個APP,能夠想什么時候查看她的位置就查看,知道她什么時候關機,開機為什么關機,在哪兒關機,多好?
動手)感覺這個東西不太難,不過是一個定位,查看,顯示,監聽而已,於是開始捉摸着動手做一個。
該APP具有如下功能:
1)使用手機號碼注冊
2)用戶創建一個家庭,並且可以將自己的家人加入家庭
3)家庭內的成員能夠看到其他成員的位置信息,刷新頻率為該用戶當前位置與上次位置相差100米
4)瀏覽自己的歷史位置
5)類似於360 那樣7 * 24的運行
6)當用戶手機關機的時候,其他用戶能夠收到短信提示,用戶何時,何地,因何關機(電量不足 or 手動關機)
7)本來我想通過手機硬件的傳感器刷出周圍有多少人,多少手機,以及其他信息的,和一些朋友討論過,沒時間深究。
8)我希望科技的力量能夠給人們帶來更加安全,可靠,幸福的生活
我不想在此APP上弄太多UI,整合百度地圖UI,線路標記等等功能,我只希望它默默的一直運行在后台,就像大家買保險,不指望他能帶來什么收益,
但是關鍵時刻卻是有力的后台。
共耗時2天一夜,算是基本敲定,基本功能實現,說來慚愧,開始本想着這么簡單的東西,后台隨便抓個語言就能做了,於是果斷的挑個Erlang來寫,然事與願違,開發了半天的時候后台進度也就是30%的樣子。
並且其中有幾個問題很難搞:
1)protobuf沒有官方的Erlang庫,找了個旁門左道的調試后總是有些稀奇古怪的問題。
2)Erlang的RPC基本沒希望和java整合
3)Android通過TCP連接到Erlang服務器總是莫名其妙的close
4)使用HTTP通信數據量太大,並且我也不希望走HTTP
5)Erlang的mnesia還不錯,但是DETS和ETS還真不如Memcached和Redis
后來一想在這個玩具上面也沒必要深入糾結Erlang的問題,並且用Erlang做應用服務器就是找罪受,於是果斷的拋棄了它。
我希望它就像360安全衛士一樣7 * 24小時運行,當當前位置與上一次位置相差超過100M則上傳位置,用byte計數的大小,基本上數據量不太大。
在客戶端基本沒啥技術難題,有些小知識點差不多是:
1)經過多個Acitivty登陸,跳轉后進入Fragment,按返回鍵需要退出而不是返回登陸界面,之前考慮每次Intent后就清掉之前的Activity,但是效果不佳,於是后來自己寫了一個Acitivty堆棧管理。
獲取返回鍵后一次pop所有的activity.
2)就是在一個頁面的ListView的下拉刷新,上拉加載更多。
3)就是Pagview的使用,僅僅在安裝后顯示一次
4)就是有時候Notification無法正常還原到Fragment,感覺該Activity被GC的感覺,但是GC的時機貌似不對。
5)百度定位
6)開關機的廣播抓取
7)使用android的官方Hessian jar包,在訪問量過大的情況下,老是會有連接EOF的問題,於是修改下源碼重新打了個包,也不知道有沒有徹底根治。
8)Protobuf
Test: http://www.bucry.com:8080/Home.apk
自己空閑了多年的阿里雲,與一口氣支付了3年的域名,現在還有1年多,終於有空在上面部署點玩具了。
目前服務器還是在折騰Erlang,看看在應用領域有沒有它發揮實力的地方,個人還是比較喜歡Erlang的,至於Golang,用過之后不太看好。語言因人而異,所有的語言的衷貶都僅僅是個人思想。
服務器啟用了Spring3.1+Hibernate4.1+hessian,使用最多的是JDBC,有空的時候也許還會考慮下能夠用Erlang給替換回來。
后期還有一些小細節,丟給一個朋友,該朋友也是碼農一位,不過現在一直搞芯片去了,讓他處理后一起丟到github去,作為Android入門的程序,也算很是健全了,基本能夠用到的Android,全在里面,也許能夠幫助一些朋友。
本人對Linux情有獨鍾,記得當初Linux下沒有像迅雷一樣的下載器,於是捉摸着自己寫一個,然一次偶然找到一個帶UI的多線程下載器,多年給我改成這個樣子了,一直自己私用。
對於第一版寫這個軟件的人表示謝謝,支持開源,開源萬歲。后期會把這些下玩意兒一起github。
不為炫耀,不為顯擺。
后記:中秋3天除了最后一天晚上出去喝了一大晚上的酒,抽調1包煙,其余2天就搞定了這樣一個APP出來,技術含量並不高,但是很多時候,這樣一些東西卻能將自己偶爾的一些小思維,用以
常人能夠看懂的方式展示出來,也許,我們工作的事業,不過是熱衷的興趣而已。
PS:APP里面的圖片乃女友所原創,耗時也弄了一天,一會兒過來鼓搗我一會兒,一會兒去PP圖,好歹一天做出來了。