#####################################################
2019-2-21
Notepad++鼎鼎大名就很少說了吧,可是若是須要在Linux環境下使用須要Wine來實現。html
今天給你們推薦一個Notepad++的替代品 — Notepadqq,基本上就是Notepad++的複製品,不管是界面仍是功能來講,都和Notepad++十分類似。java
要安裝起來很簡單,只須要添加repository再來個apt-get install便可:linux
$ sudo add-apt-repository ppa:notepadqq-team/notepadqq
$ sudo apt-get update
$ sudo apt-get install notepadqqandroid
#####################################################
2019-2-14
Linux執行.sh文件,提示No such file or directory錯誤git
以前 一直想給Linux 作一個簡單的腳本sh ,可是每次用notepad++ 編輯了放到Linux上 ,運行都失敗,
發現是由於notepad++的文件編碼是windows的 須要改爲Unix的 就能夠了
#####################################################
2019-2-14
修改Android8 開機啓動視頻 -- 代碼部分, 按照網上的方法填寫相關地方之後,發現mediaplayer類始終找不到
進行發現 要講Android.mk文件進行修改 添加include的路徑 和 調用的lib文件 以下github
include $(CLEAR_VARS)
LOCAL_MODULE := libbootanimation
LOCAL_CFLAGS += ${bootanimation_CommonCFlags}shell
LOCAL_SRC_FILES:= \
BootAnimation.cppapache
LOCAL_C_INCLUDES += \
external/tinyalsa/include \
frameworks/wilhelm/include \
frameworks/av/include ----- addubuntu
LOCAL_SHARED_LIBRARIES := \
libcutils \
liblog \
libandroidfw \
libutils \
libbinder \
libui \
libskia \
libEGL \
libGLESv1_CM \
libgui \
libtinyalsa \
libmedia \ ----- add
libbasewindows
ifdef TARGET_32_BIT_SURFACEFLINGER
LOCAL_32_BIT_ONLY := true
endif
#####################################################
javah -classpath D:\workspace\norman\AndroidStudio\MyApp\myndk\build\intermediates\javac\debug\compileDebugJavaWithJavac\classes
com.example.myndk.MyNDK
################################################
// 設置支持的SO庫架構
//Supported ABIs are [arm64-v8a, armeabi-v7a, x86, x86_64] //////// ndk 17 without armabi
要想支持armabi 須要將ndk降級到16
################################################
模擬串口通訊使用到的文件:
1. 使用了http://code.google.com/p/android-serialport-api/的項目,在本身去下載
2. 串口調試助手 網路上不少.
3. 虛擬串口 Configure Virtual Serial Port Driver
第一步,須要在C:\Program Files (x86)\Android\android-sdk\tools 在這個目錄下執行
emulator.exe @模擬器名稱 -qemu -serial COM2 指令 (要在安裝的tools目錄下執行)
emulator.exe -avd avdname -qemu -serial COM2 指令 (要在安裝的tools目錄下執行)
執行成功的話,會出現一個對話框.要你設置串口.別亂設置 (n,8,1,沒得選,這是google項目已經規定好的)
執行成功的話,那麼模擬器就會啓動.
################################################
關於使用AIDL的時候出現錯誤的問題
1 ERROR/AndroidRuntime(9435): FATAL EXCEPTION: main
2 ERROR/AndroidRuntime(9435): java.lang.NullPointerException
3 ERROR/AndroidRuntime(9435): at android.os.Parcel.readException(Parcel.java:1328)
4 ERROR/AndroidRuntime(9435): at android.os.Parcel.readException(Parcel.java:1276)
實際上是使用接口時, 對接口的參數使用操做不當產生的問題...
例如傳過來的數組ints 其實爲空,依舊使用就會致使報錯,可是AS不會定位到你使用空指針的地方,因此這些地方使用的時候 都要細心
################################################
Ubuntu 下載內核源碼出現的問題
--->>> ubuntu下 暫時不能解析域名「us.archive.ubuntu.com」
+++ 解決方案
+ 緣由是dns沒有配置,解決辦法 加入dns服務器地址,好比:
vi /etc/resolv.conf
nameserver 202.96.134.133
nameserver 8.8.8.8
若是提示只讀,用sudo運行
即sudo vi /etc/resolv.conf
+ 運行完重啓系統解決
+ 重啓完之後 還須要把apt-get的網址更新下 sudo apt-get update
// 另外獲取Linux內核源碼方法
sudo apt-get install linux-source
源碼保存在usr/src下
################################################
xshell終端就嘟嘟響而後打印出幾百行後就打出read: Unexpected EOF!結束了。這時候徹底沒有抓到我須要的打印,用logcat -s過濾能看到可是我須要所有打印進行問題分析。
這裏就是logcat對應的日誌文件超過最大值了..
能夠作如下措施
一、增長日誌buffer,如logcat -G 20M
logcat -g
main: ring buffer is 256Kb (253Kb consumed), max entry is 5120b, max payload is 4068b
system: ring buffer is 256Kb (568b consumed), max entry is 5120b, max payload is 4068b
crash: ring buffer is 256Kb (0b consumed), max entry is 5120b, max payload is 4068b
從上能夠看出默認的大小小的可憐, 如果日誌爆炸性刷新的話.有些信息就logcat不到了...使用效果以下
logcat -g
main: ring buffer is 20Mb (254Kb consumed), max entry is 5120b, max payload is 4068b
system: ring buffer is 20Mb (568b consumed), max entry is 5120b, max payload is 4068b
crash: ring buffer is 20Mb (0b consumed), max entry is 5120b, max payload is 4068b
################################################
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates
目前遇到的問題是apk 壓根沒有簽名 ,驗證方法:
keytool -list -printcert -jarfile xxx.apk
不是已簽名的 jar 文件
################################################
AG —— The silver searcher,這個軟件用c編寫的,速度極快,我如今用它替代grep了
1:首先在linux建立個sh文件->ag.sh
2:在ag.sh裏面輸入以下內容並保存
set -x
TEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX)
cd ${TEMP_DIR}
wget https://github.com/ggreer/the_silver_searcher/archive/master.zip
TAR_DIR=$(unzip *.zip)
TAR_DIR=${TAR_DIR%%/*}
TAR_DIR=${TAR_DIR##*:}
cd ${TAR_DIR}
apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev --force-yes
./build.sh && make install
cd ../../
rm -rf ${TEMP_DIR}
ag -V
set +x
3:執行./ag.sh就會去安裝了,完過後能夠用ag "helloWord"命令去尋找全部文件中包含helloWord的文件並列出所在行數等。
// 運行須要系統權限 ./ag.sh
################################################
1.修改PATH方法
1. 當前用戶
~目錄下 .bashrc
# vi ~/.bash_profile
修改PATH行,把/usr/local/apache/bin添加進去,如:PATH=$PATH:$HOME/bin:/usr/local/apache/bin。
# source ~/.bash_profile
讓此次的修改生效。
注:這種方法只對當前用戶起做用的,其餘用戶該修改無效。
2. 全部用戶
# vi /etc/profile
找到export行,在下面新增長一行,內容爲:export PATH=$PATH:/usr/local/apache/bin。
注:= 等號兩邊不能有任何空格。這種方法最好,除非手動強制修改PATH的值,不然將不會被改變。
編輯/etc/profile後PATH的修改不會立馬生效,若是須要當即生效的話,能夠執行# source profile命令。
################################################
ccache編譯器緩存,第一次編譯時ccache緩存了GCC -E輸出,把那些頭文件展開信息保存在緩存中
當第二次編譯時會盡可能得用緩存,有改動時會更新緩存\
1.安裝:
apt-get install ccache
# which ccache
/usr/local/bin/ccache
2.導出到環境變量
vi ~/.bashrc
#ccache
export USE_CCACHE=1
export CCACHE_DIR=/home/xx/tools/.ccache
3.設置ccache的大小
ccache -M 50G
4.查看ccache的信息
# ccache -s
cache directory???????????????????? /home/xx/tools/.ccache
cache hit (direct)???????????????? 79521
cache hit (preprocessed)??????????? 2589
cache miss??????????????????????? 127838
called for link??????????????????? 29051
called for preprocessing??????????? 1687
compile failed??????????????????????? 65
preprocessor error???????????????? 31244
can't use precompiled header????????? 84
couldn't find the compiler????????? 3795
unsupported source language??????? 26791
unsupported compiler option????????? 127
no input file?????????????????????? 8108
files in cache??????????????????? 373791
cache size????????????????????????? 40.4 Gbytes //編譯android已經用了40.4個G了
max cache size????????????????????? 50.0 Gbytes
5.清除全部
ccache -C
################################################
#!/bin/bash是指此腳本使用/bin/bash來解釋執行。
其中,#!是一個特殊的表示符,其後,跟着解釋此腳本的shell路徑。
bash只是shell的一種,還有不少其它shell,如:sh,csh,ksh,tcsh,...
咱們能夠經過如下一個示例來進行實驗,瞭解#!/bin/bash的使用。
除第一行外,腳本中全部以「#」開頭的行都是註釋。
1)#!/bin/bash只能放在第一行,若是後面還有#!,那麼只能當作是註釋。
################################################
LOCAL_BUILT_MODULE_STEM 模塊描述
https://wenku.baidu.com/view/c544cf79b8f67c1cfbd6b844.html
################################################
################################################
################################################
################################################
################################################
################################################
所以以native層service與framework創建client/server模式socket通訊主要代碼:
java層主要代碼:
複製代碼
LocalSocket s =null;
LocalSocketAddress l;
s = new LocalSocket();
l = new LocalSocketAddress(SOCKET_NAME,
LocalSocketAddress.Namespace.RESERVED);
s.connect(l);
複製代碼
native層主要代碼:
s_fdListen = android_get_control_socket(SOCKET_NAME);
ret = listen(s_fdListen, n);
s_fdCommand = accept(s_fdListen, (sockaddr *) &peeraddr, &socklen);
init.rc中加入:
service myserver /system/bin/myserver class main socket myserver stream 600 system system …… 這裏 SMServer 與 底層庫通訊方式就是基於LocalSocket通訊 SMServer 採用 new LocalSocket(); 底層庫 採用android_get_control_socket();################################################