在沒有android源代碼的前提下,編寫linuxc程式,放到手機上運作。
android中有bionic庫,提供了c程式運作環境。
永遠的hello,world。
編譯:root@bfq:~# arm-none-linux-gnueabi-gcc androidc.c -o androidc -static
将可執行程式搞到你的手機上。手機或許需要root,自己去嘗試吧。
修改權限:
運作看效果:
思考???
① 手機上面直接編寫一個app,app能夠去運作我們自己寫的demo麼?
② 能夠将demo搞到android的服務中去,使其開機自動運作??
問題的提出??
android的源代碼通常放到遠端伺服器上面,我們通過自己的pc使用securecrt軟體連接配接上遠端的伺服器,進行編譯操作。 編譯一次android源代碼的時間通常是很久很久的,但是由于網絡進行會掉線,導緻遠端連接配接的終端中斷,使得整個編譯過程失敗。
由于編譯android源代碼的程式是在遠端的伺服器主機上面運作的,而我們本地的pc機器隻是充當了一個輸入輸出裝置。 故當網絡斷開的時候,遠端伺服器主機上面的程式應該一直存活,不應該關閉的。
驗證明驗:
寫一個c程式,while(1)死循環一直占用着終端視窗。當終端被關閉的時候,檢視程式是否還在存活??
終端1:./a.out &
終端2:ps -u wuyingqiang
當終端1關閉的時候,再終端2檢視,此時a.out 已經死掉了。
結論:前台、背景運作的依托的是終端本身。
看來要解決問題,隻能使用守護程序了。
此時帶來了一個新的問題,就是為什麼這裡的tty為?了。因為守護進行已經脫離了終端了。是以為?。那麼當我想把這個守護程序搞到前端運作的時候,這個時候應該怎麼搞呢?蒙圈了?迷糊了?。。。。。。。。
手機掃描二維碼,安裝下載下傳沒有問題。完美運作。
下載下傳完後把擴充名修改成apk就可以了。可是真的很麻煩哎。
找到tomcat/conf/web.xml配置檔案。
修改mime标簽
重新開機伺服器,清空ie緩存,解決。
a)有源代碼的情況下,直接将apk檔案放到out/.../system/app/目錄下,重新編譯生成鏡像檔案進行燒寫就可。相當于重新刷了一次rom。
b)如果沒有源代碼了,隻能通過其他的技術手段進行實作。例如,短信木馬。
./frameworks/base/packages/keyguard/src/com/android/keyguard/keyguardviewmediator.java檔案中的192行改為false
private boolean mexternallyenabled = true; 将true開關量改為false。重新編譯源碼生成鏡像。
經常使用第三方廠家的子產品,由于子產品一般都是提供一個電源,序列槽tx,rx,而是的電平是ttl電平,pc機器上的序列槽是rs232電平。通常需要借助一個max232晶片進行轉換。在使用的過程中,此晶片經常發燙,燒壞。造成資料的不正确。
解決方案:購買了usb-ttl子產品。直接安裝上驅動即可使用。使用還真是很友善。完美的很。就是先太短了,就先很是費勁,此時找來一根usb延長線,一頭公一頭母。連上usb延長線,在裝置管理器中,能夠看到usb-ttl序列槽号,但是序列槽助手中,咋也沒有資料。後來找來硬體工程師幫忙。将序列槽的gnd連接配接上。完美解決問題。
在後期的使用過程中,還需要多多注意這個問題。
a.先做好電話咨詢,了解清楚相關的各種細節。最好在進行電話溝通之前,先把所需要了解的各種問題點,在筆記上做一個簡單的總結。
b.電話溝通的過程中,應該仔細聽取對方的描述細節。避免主觀臆斷,進行猜測的行為。
c.合同的範本,各種格式的細節描述,先做到心中有數,再及時進行溝通。
就是同一個程式,修改什麼值能夠安裝多次而不覆寫?
修改包名即可。
android程式是以包名作為線程名字。
程式中是不允許有兩個相同包名的程式的。
例如:将qq.exe重命名為qq1.exe和qq2.exe在一台電腦上進行安裝。
改變包名, 和androidmainfest.xml檔案中的
package="com.wuyq.linearlayout"。
安卓4.3(api 18)為ble的核心功能提供平台支援和api,app可以利用它來發現裝置、查詢服務和讀寫特性。相比傳統的藍牙,ble更顯著的特點是低功耗。這一優點使android app可以與具有低功耗要求的ble裝置通信,如近距離傳感器、心髒速率螢幕、健身裝置等。