国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

紅外項目總結

2019-11-09 15:45:50
字體:
來源:轉載
供稿:網友

紅外項終于告一段落了,趁著空閑時間,特來總結一番。

項目介紹

通過wifi連接熱像儀(設備),連接成功后每隔5s向熱像儀發送心跳包,同時接受熱像儀發送的心跳包。通過一些指令,實現對熱像儀進行調焦,溫度校正、電子變倍、設備抓圖、實時監控(實時視頻播放)等操作,也可通過指令將熱像儀抓的圖和錄制的視頻下載到本地,進行一系列的分析操作。

內存溢出分析總結

開發項目中遇到的最讓人頭疼的問題,莫過于內存溢出了。由于項目中大量涉及到了對byte數組的使用(拷貝,拼接、查找)等,一不小心就outofmemory了??偨Y出需要注意以下兩個知識點的使用

1> 多線程中鎖的使用----項目中接收數據和處理數據是在不同線程里處理的,沒加鎖使得后面的數據處理不對,數據不能夠及時被釋放掉,導致用于存放數據的byte數組無限增大……

2>內存分析工具的使用(MAT),在android studio中,點擊monitor,先initiate GC,然后Start Allocation Tracking,最后Dump java Heap.在項目captures下會生成分析的hPRof(Dalvik格式)文件,將該文件通過android sdk下的hprof-conv.exe 執行hprof-conv dump.hprof converted-dump.hprof,從Dalvik格式轉換成J2SE HPROF格式,最后使用下載的MemoryAnalyzer.exe工具打開hprof文件進行分析【使用代碼成功hprof文件鏈接:http://blog.csdn.net/sodino/article/details/38512473】

知識點總結

1、socket使用----項目里使用的是原始(一開始打算使用netty框架進行socket編程,但由于項目本身的特殊性[接收到的是原始的byte字節,沒有標識長度],最終放棄使用)

2、byte使用 byte范圍-128-127,byte轉換成int  需要使用google的無符號轉換方法 UnsignedBytes.toInt() ---compile 'com.google.guava:guava:20.0'

2、litepal數據庫使用,該開源框架使用起來特別方便,采用了對象關系映射(ORM)的模式,對數據庫常用的方法進行了封裝,無需用戶編寫sql語句------compile 'org.litepal.android:core:1.3.2'

3、surfaceview使用,注意點【1】:surfaceview設置背景不可再xml里設置會導致更新界面無效,可在callback的surfaceCreated方法中繪制背景色【2】:切換surfaceview大小時會出現黑邊,需要在callback的surfaceChanged回調中設置setFixedSize(width, height); 【3】:布局里包含surfaceview,使用getDrawingCache截圖,會導致截圖失敗

4、曲線繪制--achartengine使用---compile files('libs/achartengine-1.2.0.jar')

5、范圍選擇控件--rangeseekbar使用  ---

 compile 'com.yahoo.mobile.client.android.util.rangeseekbar:rangeseekbar-library:0.1.0'

6、圖形(點、線、圓、矩形)添加,放大縮小,移動操作

7、系統方法使用:數組合并:System.arraycopy(Object src, int srcPos, Object dst, int dstPos, int length)

                          數組截?。篈rrays.copyOfRange(byte[] original, int start, int end)

8、創建文件夾,File dir = new File(saveDir)在android高版本手機上創建失敗           if (!dir.exists()) {               dir.mkdirs();           }

         需改為 String[] path = filePath.split("/");        for (int i = 0; i < path.length; i++) {             if (newPath == null) {                newPath = path[i];            } else {                newPath = newPath + "/" + path[i];              }            file = new File(newPath);            if (!file.exists()) {                file.mkdir();            }        }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卢龙县| 益阳市| 安庆市| 奉贤区| 瓦房店市| 丘北县| 上高县| 容城县| 扶绥县| 龙里县| 油尖旺区| 永善县| 荔波县| 玛沁县| 崇信县| 江华| 游戏| 凤冈县| 莒南县| 台湾省| 郑州市| 江孜县| 嫩江县| 德保县| 辽阳市| 新安县| 萨迦县| 肇州县| 东阿县| 永定县| 高安市| 如皋市| 崇州市| 廉江市| 禹州市| 叶城县| 伊金霍洛旗| 永泰县| 都江堰市| 乌兰察布市| 凤山县|