[持續(xù)更新] 程序猿(主要偏Android)有用的大雜燴

垃圾Oracle,下個(gè)JDK還需要登錄,并且下載還超慢,還是國(guó)內(nèi)下載鏡像地址爽!(from qingliang4321,Thks!)
TUNA鏡像,HUAWEI鏡像,injdk,編程寶庫(kù),jdk下載

最新下載的jdk壓縮包,解壓后都沒有jre目錄了,需要執(zhí)行命令bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre生成jre目錄

程序員網(wǎng)址導(dǎo)航https://www.coderutil.com/

讓瀏覽器快速變成文本編輯器匾竿,地址欄輸入:data:text/html, <html contenteditable>
臨時(shí)文件上傳快速分享好網(wǎng)站:奶欧税快傳

談?wù)?a target="_blank">Android下App的安全性問題缤底,寫好強(qiáng)壯代碼

Android部分手機(jī)崩潰了后會(huì)自動(dòng)重啟應(yīng)用,導(dǎo)致logcat的崩潰日志被刷掉,很是苦惱,拔線都來不及,這個(gè)時(shí)候可以用adb logcat >> log.txt命令在要崩潰的時(shí)候趕緊執(zhí)行記錄日志到文件,崩潰后及時(shí)停止記錄,然后進(jìn)去搜索FATAL EXCEPTION就可以愉快看報(bào)錯(cuò)了

Android逆向:
Android脫殼實(shí)質(zhì)就是dumpDexhttps://www.cnblogs.com/jiaoxiake/p/6818786.html
在手機(jī)上dump運(yùn)行app的dex工具https://github.com/CodingGay/BlackDex
Android逆向工具集合https://pan.baidu.com/s/14LvxsYv4O_vTm4IWaGHnjQ?pwd=t3y3

Android 7.0之后系統(tǒng)如何抓包
Android 7.0 (API 24) 之后地啰,使得系統(tǒng)安全性增加了琐驴,導(dǎo)致APP 默認(rèn)不信任用戶域的證書,之前把Charles的ssl證書,安裝到 受信任的憑據(jù) -> 用戶 就沒用了,因?yàn)椴皇苄湃瘟嗣朊罚恍湃危ò惭b到)系統(tǒng)域的證書,導(dǎo)致抓出來的https的請(qǐng)求讶坯,都是加了密的番电,無法看到原文了
對(duì)此,相關(guān)解決思路和方案:
1.(努力想辦法)讓系統(tǒng)信任Charles的ssl證書辆琅,作為app的開發(fā)者自己:改自己的app的配置漱办,允許https抓包,重要提醒:前提是得到或本身有app的源碼婉烟,新建:res/xml/network_security_config.xml娩井,內(nèi)容:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </base-config> <debug-overrides> <trust-anchors> <certificates src="user" /> </trust-anchors> </debug-overrides> </network-security-config>
2.把證書放到受系統(tǒng)信任的系統(tǒng)證書中去,重要提示:前提是手機(jī)已root
??1).計(jì)算證書名:openssl x509 -subject_hash_old -in charles-ssl-proxying-certificate_saved.pem似袁,算出數(shù)值洞辣,比如3a1074b3
??2).證書文件改名咐刨,然后把原Charles證書charles-ssl-proxying-certificate_saved.pem改名為3a1074b3.0
??3).放到系統(tǒng)分區(qū),放到/system/etc/security/cacerts/
3.繞開https不去校驗(yàn)扬霜,借助于其他(JustTrustMe等)工具繞開https的校驗(yàn)定鸟,重要提示:需要借助其他XPosed等框架配合才可以
??Android用可以繞開/禁止SSL pinning的插件JustTrustMe,IOS基于CydiaAndroid-SSL-TrustKiller/SSL Kill Switch 2/iOS SSL Kill Switch
??
限制:JustTrustMe只能支持Android 7.0之前的安卓著瓶,超過Android 7.0就不工作了*

gradle自定義task命令行執(zhí)行時(shí)帶參及獲取參數(shù)方法

task testTask {//任務(wù)定義及參數(shù)解析
   doFirst {
      def aarTaskStr = null
       def projectStr = null
       def commandParam = project.gradle.startParameter.projectProperties>
       if(null != commandParam){
           aarTaskStr = commandParam.aarTask
           projectStr = commandParam.projectPath
       }//end of if
       println "=======命令行參數(shù)==>aarTask:${aarTaskStr}==>projectPath:${projectStr}"
   }
   doLast {
       println "=========>Finish"
   }
}
執(zhí)行任務(wù)及帶參(用-P標(biāo)識(shí)):  ./gradlew aAutoPkgTest -PaarTask=assembleReleaseXX -PprojectPath=.../xxxxxx/.../app

android讀取AndroidManifest中meta-data值為長(zhǎng)數(shù)字讀取成科學(xué)計(jì)數(shù)法的問題联予,在純數(shù)字前面添加\轉(zhuǎn)義符即可

<meta-data android:name="TEST_KEY" android:value="\\3112212603" />不加的話讀取出來是:3.11221248E9

AndroidTv相關(guān)https://gitee.com/kumei/AndroidTvDev

crx Chrome插件下載地址https://crxdl.com/

layui最新網(wǎng)址http://bmxpx.com/

灰常不錯(cuò)的Linux命令查詢https://wangchujiang.com/linux-command/hot.html

灰常不錯(cuò)的正則表達(dá)式網(wǎng)站https://regex101.com/

JSON/SQL的格式化/校驗(yàn)等各種工具集合https://www.bejson.com/json/format/https://www.freeformatter.com/

牛皮好用的markdown編輯器:https://github.com/marktext/marktext/
牛皮好用的markdown編輯及簡(jiǎn)單手動(dòng)轉(zhuǎn)PDF器:https://md2pdf.netlify.com/https://realdennis.github.io/md2pdf/,對(duì)應(yīng)項(xiàng)目https://github.com/realdennis/md2pdf
在線markdown轉(zhuǎn)換pdf器https://cloudconvert.com/md-to-pdf

命令行或代碼實(shí)現(xiàn)markdown轉(zhuǎn)換pdf器:
https://github.com/alanshaw/markdown-pdf材原,安裝命令:npm install -g markdown-pdf --ignore-scripts沸久,執(zhí)行轉(zhuǎn)換命令:markdown-pdf -p /home/xxx/bin/phantomjs test.md;轉(zhuǎn)換出來效果一般,勉強(qiáng)能用,需要執(zhí)行安裝:npm install -g phantomjs
https://github.com/simonhaenisch/md-to-pdf余蟹,安裝命令:npm i -g md-to-pdf卷胯,執(zhí)行轉(zhuǎn)換命令:md-to-pdf test.md;轉(zhuǎn)換出來效果非常接近,推薦使用
https://github.com/kxxoling/markdown2pdf威酒,安裝命令:pip install markdown2pdf窑睁,執(zhí)行轉(zhuǎn)換命令:md2pdf test.md;轉(zhuǎn)換出來效果非常接近,推薦使用

牛B的矢量小圖標(biāo)網(wǎng)站:https://www.iconfont.cn/,矢量大圖標(biāo)網(wǎng)站:https://undraw.co/

非常棒的在線轉(zhuǎn)換網(wǎng)站葵孤,比如m4r轉(zhuǎn)mp3卵慰,https://onlineconvertfree.com/zh/

mac有時(shí)候ssh訪問的時(shí)候需要證書

ssh -i xxx.pem root@192.168.8.1 -p 60022
如果遇到報(bào)錯(cuò):Permissions 0644 for 'xxx.pem' are too open.說明這個(gè)pem文件的權(quán)限太大了,需要給小點(diǎn), 所以執(zhí)行修改哈權(quán)限:sudo chmod 600 xxx.pem
最方便的還是使用ssh-add 添加一下鍵文件佛呻,以后訪問方便點(diǎn) ssh-add -k key.pem, 執(zhí)行完上面的命令后下次就只需要像普通ssh那樣訪問就可以了裳朋,如下:ssh root@192.168.8.1 -p 60022
如果報(bào)錯(cuò):Unable to negotiate with 192.168.8.1 port 60022: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1,kexguess2@matt.ucc.asn.au
就sudo vi /etc/ssh/ssh_config文件,在最末尾加入wq保存即可
KexAlgorithms +diffie-hellman-group14-sha1
KexAlgorithms +diffie-hellman-group1-sha1
# KexAlgorithms +kexguess2@matt.ucc.asn.au
注:有時(shí)ssh帶端口方式是:ssh root@192.168.8.1:60022,根據(jù)執(zhí)行結(jié)果來看選哪種

非常牛批吓著,操作簡(jiǎn)單鲤嫡,平臺(tái)齊全的內(nèi)網(wǎng)穿透https://www.ngrok.com/

ngrok authtoken 2322b*********************FP
ngrok http 80
ngrok http https://localhost:8080

查看linux、mac支持某個(gè)命令绑莺,比如nvm:command -v nvm暖眼,其他ll,ls纺裁,node同理

linux中“sudo 運(yùn)行 npm或node時(shí)诫肠,出現(xiàn)找不到命令”,通過建立軟連接可以解決

先執(zhí)行whereis node和whereis npm找到位置欺缘,然后分別執(zhí)行
sudo ln -s 找到/bin/node位置 /usr/bin/node
sudo ln -s 找到/bin/npm位置 /usr/bin/npm

關(guān)于Mac的環(huán)境變量問題
mac 一般使用bash作為默認(rèn)shell
Mac系統(tǒng)的環(huán)境變量栋豫,加載順序?yàn)椋?code>/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
其中/etc/profile和/etc/paths是系統(tǒng)級(jí)別的,系統(tǒng)啟動(dòng)就會(huì)加載谚殊,后面幾個(gè)是當(dāng)前用戶級(jí)的環(huán)境變量丧鸯。后面3個(gè)按照從前往后的順序讀取,如果~/.bash_profile文件存在嫩絮,則后面的幾個(gè)文件就會(huì)被忽略不讀了丛肢,如果 ~/.bash_profile文件不存在围肥,才會(huì)以此類推讀取后面的文件。 ~/.bashrc沒有上述規(guī)則蜂怎,它是bash shell打開的時(shí)候載入的!
其中OS X 和 Linux 都有 ~/.bash_profile~/.bashrc 這兩個(gè)配置文件穆刻。但是,有時(shí)在OS X里會(huì)遇到~/.bashrc不生效的情況:
兩系統(tǒng)規(guī)則是當(dāng)打開的shell是login shell杠步,~/.bash_profile才會(huì)加載蛹批,而~/.bashrc正好相反。
而真正的區(qū)別是在linux下篮愉,當(dāng)用戶登錄到一個(gè)圖形界面,然后打開一個(gè)終端terminal差导,那些shell是non-login shell试躏。
然而,在OS X登錄的時(shí)候设褐,并沒有運(yùn)行著一個(gè)shell颠蕴,所以,在運(yùn)行Terminal.app的時(shí)候助析,其實(shí)那是一個(gè)login shell犀被。
你還是可以在~/.bashrc下寫一些配置,只要在~/.bash_profile里加一條source ~/.bashrc就是了外冀。
對(duì)于Mac的login shell寡键,確實(shí)在終端的配置中找到了相關(guān)答案: 點(diǎn)擊終端的"偏好設(shè)置"選項(xiàng),在通用一欄中可以看到shell的打開方式 "默認(rèn)登錄Shell"。剛開始時(shí)發(fā)現(xiàn)選擇的是"命令(完整的路徑)"雪隧,在這種方式下并不會(huì)先加載".bash_profile"文件西轩,改過后發(fā)現(xiàn)可以保證.bash_profile文件在打開時(shí)就加載。
而有時(shí)改 ~/.bash_profile~/.bashrc 這兩個(gè)配置文件還是不行,這個(gè)時(shí)候還可能就是shell使用的~/.zshrc了,具體測(cè)試方法是向懷疑的配置文件最開始寫一句 echo "測(cè)試打印"之類的打印文字保存source一下,然后新開shell打開新標(biāo)簽,看打印這句話沒!

Mac安裝swig
安裝swig(下載地址,密碼:ftn4)之前一定要先安裝pcre(下載地址,密碼:d99z)
下載完pcre 和swig 之后脑沿,把解壓后的pcre 文件夾放到swig 文件夾根目錄下藕畔,然后建議對(duì)pcre和swig目錄執(zhí)行sudo chmod -R 777進(jìn)行授權(quán),避免下面命令不能執(zhí)行或權(quán)限不足
打開終端,先cd進(jìn)解壓后的pcre根目錄庄拇,輸入./configure注服,回車執(zhí)行;再輸入make措近,回車執(zhí)行溶弟;最后輸入sudo make install回車執(zhí)行
退回swig 根目錄,和上述一樣瞭郑,依次執(zhí)行./configure可很、make、sudo make install
全部執(zhí)行完后凰浮,輸入swig -version我抠,能出來swig版本說明成功安裝swig

Mac開啟自帶的Apache服務(wù)器
1苇本、開啟 sudo apachectl start
2、關(guān)閉 sudo apachectl stop
3菜拓、重啟 sudo apachectl restart
默認(rèn)的網(wǎng)站根目錄在/Library/WebServer/Documents ,訪問地址:127.0.0.1

Mac壓縮文件且分包:
zip - jeb-demo-4.2.0.zip | split -b 90m -d -a 3 - jeb-demo-4.2.0.zip.
這個(gè)命令注意短杠都是必要的,且有空格,命令執(zhí)行后生成的分包名:jeb-demo-4.2.0.zip.000,jeb-demo-4.2.0.zip.001....,為了通用的軟件能自動(dòng)識(shí)別分包文件到時(shí)可實(shí)行自動(dòng)合包解壓,需要把分包后綴改成從.001開始的哈

JD-GUI打開的時(shí)候可能彈框報(bào)錯(cuò): No suitable Java version found on your system! This program requires Java 1.8+ Make sure you install the required Java version.這個(gè)解決方法直接去Application里面找到JD-GUI瓣窄,右鍵>顯示包,找到打開universalJavaApplicationStub.sh纳鼎,然后找到這句報(bào)錯(cuò),注釋掉這句報(bào)錯(cuò)和下面的exit 3,然后添加一句:JAVACMD="/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/bin/java",換成你自己的jdk版本即可

降級(jí) node: wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
或者
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
source ~/.bashrc (linux) touch ~/.bash_profile(MacOs)
列出所有版本:nvm ls-remote
安裝指定版本:nvm install v8.11.3
使用指定版本:nvm use v8.11.3
將 8.11.3版本設(shè)為默認(rèn)版本:nvm alias default 8.11.3
查看當(dāng)前使用版本:nvm ls 或者 node -v

Mac Chrome 谷歌瀏覽器跨域問題解決:open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/stephen/Public google-chrome --disable-web-security

Mac 命令行打開Android Stduio并且打開一個(gè)項(xiàng)目:open -a /Applications/Android\ Studio.app/ android-xx-ptoject-name/ 其他軟件類推

Mac精品軟件下載https://www.macwk.com/

windows的bat腳本觸發(fā)請(qǐng)求
1俺夕、curl http://***.****.com 直接請(qǐng)求網(wǎng)址
2、start iexplore http://IP?username=xx&password=xx 打開ie瀏覽器GET請(qǐng)求

windows開機(jī)執(zhí)行bat腳本:把xxx.bat文件放入C:\Users\root\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目錄下贱鄙,其中AppData為隱藏目錄劝贸,就能夠開機(jī)時(shí)自動(dòng)執(zhí)行腳本里的內(nèi)容了

windows的bat腳本if語(yǔ)法限制總結(jié):
bat的if語(yǔ)句要注意,有很多限制,要不然執(zhí)行后輸入后回車cmd直接閃退;
1.里面()不能包含(),否則異常斷句:
error example: if %test% == a (echo 成(功)啦) else (echo 失敗啦)
2.不能在if語(yǔ)句里面輸入獲取,得用goto語(yǔ)句新建塊來操作:
error example: if %test% == a ( set /p input=請(qǐng)輸入: echo %input% ) else (echo 失敗啦)
3.不能在if語(yǔ)句里面執(zhí)行mkdir等操作,得用goto語(yǔ)句新建塊來操作:
error example: if %test% == a (mkdir testFolder ) else (echo 失敗啦)

Ubuntu PearOS官網(wǎng) https://pearos.xyz/

linux 查看大文件并排序(這樣找到就可以針對(duì)性刪除大文件釋放空間):

sudo du -a /home/stephen | sort -n -r | head -n 100
或
find . -type f -size +800M  -print0 | xargs -0 du -hm | sort -n

mac 查看大文件并排序(這樣找到就可以針對(duì)性刪除大文件釋放空間):

du -h -d 100 | sort -nr
其中,-h參數(shù)表示把大小用人可以閱讀的格式顯示出來逗宁,達(dá)到 MB 級(jí)別就用 M映九,達(dá)到 GB 級(jí)別就用 G。如果不加這個(gè)參數(shù)瞎颗,那么大小會(huì)以比特的方式顯示件甥,于是你會(huì)看到很多你數(shù)不清多少位的數(shù)字; 參數(shù)-d 1表示只統(tǒng)計(jì)1層文件夾的大小,如果一個(gè)文件夾有多層哼拔,那么它只會(huì)統(tǒng)計(jì)到第1層引有,內(nèi)部的文件夾無論有多少個(gè),它只會(huì)返回一個(gè)總大小倦逐。你也可以把數(shù)字1改成2或者3

Windows 顯示文件占用大小好用的軟件(這樣找到就可以針對(duì)性刪除大文件釋放空間): FolderSize wizTree

linux apt-get相關(guān)命令:

sudo apt-get -f install   
apt --fix-broken install
sudo apt-get install aptitude 
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF0E1940624A220 #此處6AF0E1940624A220需要是錯(cuò)誤提示的key

安裝rpm包
1 #rpm -i example.rpm 安裝 example.rpm 包譬正;
2 #rpm -iv example.rpm 安裝 example.rpm 包并在安裝過程中顯示正在安裝的文件信息;
3 #rpm -ivh example.rpm 安裝 example.rpm 包并在安裝過程中顯示正在安裝的文件信息及安裝進(jìn)度

dpkg命令進(jìn)行安裝deb包
1檬姥、使用dpkg命令進(jìn)行安裝:sudo dpkg -i deb文件名
2导帝、根據(jù)經(jīng)驗(yàn),通常情況下會(huì)報(bào)依賴關(guān)系的錯(cuò)誤穿铆,我們可以使用以下的命令修復(fù)安裝:sudo apt-get install -f
3您单、如果要卸載安裝的應(yīng)用我們通過“sudo dpkg -l”查看已經(jīng)安裝的軟件,并找到自己的安裝的軟件名荞雏。
4虐秦、最后使用"sudo dpkg -r 軟件名"進(jìn)行卸載

linux構(gòu)建python別名
echo alias python=python3 >> ~/.bashrc
source ~/.bashrc
python

linux給一個(gè)文件中的每一行開頭插入字符的方法:awk '{print "xxx"$0}' test.txt
shell給一個(gè)文件中的每一行結(jié)尾插入字符的方法:awk '{print $0"xxx"}' test.txt
shell給一個(gè)文件中的每一行的指定列插入字符的方法:awk '$O=$O" xxx"' test.txt

vi常用命令:
按ESC后輸入“:”進(jìn)入命令行;清空文件內(nèi)容輸入“%d”回車凤优;保存輸入“wq”回車悦陋;強(qiáng)制保存輸入“wq!”回車;退出輸入“q”回車筑辨;搜索內(nèi)容:“/string” 從光標(biāo)處開始向后尋找字符串 string俺驶,“?string” 從光標(biāo)處開始向后前尋找字符串 string,n 命令重復(fù)上一條檢索命令棍辕,N 命令重復(fù)上一條檢索命令暮现,但檢索方向改變还绘。例如上次的檢索命令是向前檢索,那么此次檢索的方向是向后栖袋;如果上次的檢索命令是向后檢索拍顷,那么此次檢索的方向是向前,g/string 使光標(biāo)停止在第一個(gè)檢索到的 string 串的行首

windows上讓python執(zhí)行報(bào)錯(cuò)后不關(guān)閉窗口塘幅,首先需確保將python.exe全路徑添加到Windows系統(tǒng)環(huán)境變量PATH中昔案,并且命令行執(zhí)行方式為:python.exe xxx.py

mac/linux根據(jù)端口查找殺死進(jìn)程

lsof -i:8081
kill -9 xxx

netstat -aon|findstr "8081"
tasklist|findstr "7216"
taskkill /pid 7216 /F

PowerShell因?yàn)樵诖讼到y(tǒng)中禁止執(zhí)行腳本的解決方法: win菜單->找到powershell->右鍵管理員運(yùn)行->執(zhí)行命令:set-executionpolicy remotesigned,選全是【A】回車即可

Mac系統(tǒng)禁用Gatekeeper,開啟任意安裝,否則報(bào)錯(cuò):macOS cannot verify that this app is free from malware
sudo spctl --master-disable

Mac上裝軟件好的網(wǎng)站:https://www.macwk.com/

可以在線打開pdm數(shù)據(jù)表文件的網(wǎng)站:http://www.dmanywhere.cn/

黑蘋果 MacOS 10.15 Catalina安裝教程 http://www.reibang.com/p/2fa8458378df

websocket測(cè)試 http://coolaf.com/tool/chattest

手動(dòng)安裝Android aab 包方法(也可用這個(gè)項(xiàng)目我修改過的腳本直接安裝https://github.com/didikee/AndroidAppBundleIntaller/issues/15
安裝aab包需要將aab的包轉(zhuǎn)化成apks格式后進(jìn)行安裝
總體需要一個(gè)必要條件:bundletool.jar
1.命令安裝或手動(dòng)下載bundletool
brew install bundletool
2.aab包導(dǎo)出apks(簽名后的包需要加上后面的--ks部分)
bundletool build-apks --bundle=app-googleplay.aab --output=./app-googleplay.apks --ks=/Users/xxx/Documents/AndroidProjects/xxxx_android_app/app/xxxx_key.jks --ks-pass=pass:xxxx --ks-key-alias=xxx --key-pass=pass:xxxx
3.安裝apks
bundletool install-apks --apks=/Users/xxx/Downloads/app-googleplay.apks
注:如果是下載的jar,前綴命令為:java -jar bundletool-all-0.15.0.jar build-apks --bunlde=xxxxx....

用aapt命令可查看apk清單文件信息: ./aapt dump badging xxxx.apk
1.aapt 命令下載地址: https://androidaapt.com/ ; 此命令A(yù)ndroidSdk的build-tools目錄下具體版本下也有
2.如果是xapk格式請(qǐng)先做zip解壓,然后對(duì)里面的apk執(zhí)行此命令
3.如果是apks也先做zip解壓,然后去里面splits目錄找到base-master.apk執(zhí)行此命令
4.如果是aab格式需先執(zhí)行上一條備注里面的 <aab包導(dǎo)出apks>命令 將aab包導(dǎo)出apks,再對(duì)結(jié)果apks做zip解壓,然后對(duì)里面的apk執(zhí)行此命令

openssl生成公鑰和私鑰
openssl genrsa -out rsa_private_key.pem 1024 //生成私鑰
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem //根據(jù)私鑰生成對(duì)應(yīng)公鑰
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt //根據(jù)私鑰生成pkcs8

Android還原混淆的代碼
將mapping.txt復(fù)制到 \Sdk\tools\proguard\bin\ 目錄下
將 crash 信息保存到 \Sdk\tools\proguard\bin\crash.txt中
打開終端电媳,進(jìn)入 \Sdk\tools\proguard\bin\目錄 執(zhí)行 retrace.bat -verbose mapping.txt crash.txt > out.txt

更好看的git log
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
配置了這個(gè)之后踏揣,使用git lg簡(jiǎn)直眼前一亮

Android media project 聲音源常量
MediaRecorder.AudioSource.DEFAULT 默認(rèn)音頻源
MediaRecorder.AudioSource.MIC
設(shè)定錄音來源為主麥克風(fēng)。
MediaRecorder.AudioSource.VOICE_CALL
設(shè)定錄音來源為語(yǔ)音撥出的語(yǔ)音與對(duì)方說話的聲音
MediaRecorder.AudioSource.VOICE_COMMUNICATION
攝像頭旁邊的麥克風(fēng)
MediaRecorder.AudioSource.VOICE_DOWNLINK
下行聲音
MediaRecorder.AudioSource.VOICE_RECOGNITION
語(yǔ)音識(shí)別
MediaRecorder.AudioSource.VOICE_UPLINK
上行聲音
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);//通話中匾乓,對(duì)方捞稿、自己聲音都會(huì)錄下來
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK);//只錄取揚(yáng)聲器、聽筒聲音
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_UPLINK);
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);//跟MIC一樣钝尸,只錄取麥克風(fēng)聲音,但揚(yáng)聲器太大聲的話也會(huì)錄到

AndroidAPI等級(jí)對(duì)照?qǐng)D


API等級(jí)對(duì)照?qǐng)D

終端解壓命令集合大全
tar解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包搂根,不是壓縮U浯佟)
———————————————
.gz解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓縮:gzip FileName
.tar.gz 和 .tgz解壓:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName
———————————————
.bz2解壓1:bzip2 -d FileName.bz2
解壓2:bunzip2 FileName.bz2
壓縮: bzip2 -z FileName
.tar.bz2解壓:tar jxvf FileName.tar.bz2
壓縮:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz
壓縮:未知
.tar.bz解壓:tar jxvf FileName.tar.bz
壓縮:未知
———————————————
.Z解壓:uncompress FileName.Z
壓縮:compress FileName
.tar.Z解壓:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName
———————————————
.zip解壓:unzip FileName.zip
壓縮:zip FileName.zip DirName
———————————————
.lha解壓:lha -e FileName.lha
壓縮:lha -a FileName.lha FileName
———————————————
.rpm解包:rpm2cpio FileName.rpm | cpio -div
———————————————
.deb解包:ar p FileName.deb data.tar.gz | tar zxf -
———————————————
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea解壓:sEx x FileName.*
壓縮:sEx a FileName.* FileName
sEx只是調(diào)用相關(guān)程序,本身并無壓縮剩愧、解壓功能猪叙,請(qǐng)注意!
gzip 命令減少文件大小有兩個(gè)明顯的好處仁卷,一是可以減少存儲(chǔ)空間穴翩,二是通過網(wǎng)絡(luò)傳輸文件時(shí),可以減少傳輸?shù)臅r(shí)間锦积。gzip 是在 Linux 系統(tǒng)中經(jīng)常使用的一個(gè)對(duì)文件進(jìn)行壓縮和解壓縮的命令芒帕,既方便又好用。
語(yǔ)法:gzip [選項(xiàng)] 壓縮(解壓縮)的文件名該命令的各選項(xiàng)含義如下:
-c 將輸出寫到標(biāo)準(zhǔn)輸出上丰介,并保留原有文件背蟆。-d 將壓縮文件解壓。-l 對(duì)每個(gè)壓縮文件哮幢,顯示下列字段: 壓縮文件的大写颉;未壓縮文件的大谐裙浮垛叨;壓縮比;未壓縮文件的名字-r 遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮柜某。-t 測(cè)試嗽元,檢查壓縮文件是否完整敛纲。-v 對(duì)每一個(gè)壓縮和解壓的文件,顯示文件名和壓縮比还棱。-num 用指定的數(shù)字 num 調(diào)整壓縮的速度载慈,-1 或 --fast 表示最快壓縮方法(低壓縮比),-9 或--best表示最慢壓縮方法(高壓縮比)珍手。系統(tǒng)缺省值為 6办铡。指令實(shí)例:
gzip *% 把當(dāng)前目錄下的每個(gè)文件壓縮成 .gz 文件。gzip -dv *% 把當(dāng)前目錄下每個(gè)壓縮的文件解壓琳要,并列出詳細(xì)的信息寡具。gzip -l *% 詳細(xì)顯示例1中每個(gè)壓縮的文件的信息,并不解壓稚补。gzip usr.tar% 壓縮 tar 備份文件 usr.tar童叠,此時(shí)壓縮文件的擴(kuò)展名為.tar.gz。

裝B名詞:
復(fù)盤课幕,賦能厦坛,沉淀,倒逼乍惊,落地杜秸,串聯(lián),協(xié)同润绎,反哺撬碟,兼容;
包裝莉撇,重組呢蛤,履約,響應(yīng)棍郎,量化其障,發(fā)力,布局涂佃,聯(lián)動(dòng)静秆,細(xì)分;
梳理巡李,輸出抚笔,加速,共建侨拦,支撐殊橙,融合,聚合,解藕膨蛮,集成叠纹;
對(duì)齊,對(duì)標(biāo)敞葛,對(duì)焦誉察,抓手,拆解惹谐,拉通持偏,抽象,摸索氨肌,提煉鸿秆;
打通,打透怎囚,吃透卿叽,遷移,分發(fā)恳守,分層考婴,分裝,穿梭催烘,輻射沥阱;
圍繞,復(fù)用颗圣,滲透喳钟,擴(kuò)展屁使,開拓在岂,漏斗,中臺(tái)蛮寂,閉環(huán)蔽午,打法;
拉通酬蹋,紐帶及老,矩陣,刺激范抓,規(guī)模骄恶,場(chǎng)景,聚焦匕垫,維度僧鲁,格局;
形態(tài),生態(tài)寞秃,話術(shù)斟叼,體系,認(rèn)知春寿,玩法朗涩,體感,感知绑改,調(diào)性谢床;
心智,戰(zhàn)役绢淀,合力萤悴,心力,賽道皆的,因子覆履,模型,載體费薄,橫向硝全;
通道,補(bǔ)位楞抡,鏈路伟众,試點(diǎn);
顆粒度召廷,感知度凳厢,方法論,組合拳竞慢,引爆點(diǎn)先紫,點(diǎn)線面,精細(xì)化筹煮,差異化遮精,平臺(tái)化,結(jié)構(gòu)化败潦,影響力本冲,耦合性,易用性劫扒,一致性檬洞,端到端,短平快沟饥。
生命周期添怔,價(jià)值轉(zhuǎn)化环戈,強(qiáng)化認(rèn)知,資源傾斜澎灸,完善邏輯院塞,抽離透?jìng)鳎瑥?fù)用打法性昭,商業(yè)模式拦止,快速響應(yīng),定性定量糜颠,關(guān)鍵路徑汹族,去中心化,結(jié)果導(dǎo)向其兴,垂直領(lǐng)域顶瞒,如何收口,歸因分析元旬,體驗(yàn)度量榴徐,信息屏障

admob高級(jí)技巧如下:
1.多申請(qǐng)幾個(gè)admob賬號(hào),以免雞蛋都放在一個(gè)籃子里匀归,因?yàn)槭湛钜?個(gè)月坑资,夜長(zhǎng)夢(mèng)多,萬一被封號(hào)穆端,2個(gè)月內(nèi)的錢就付之東流了袱贮。一個(gè)賬號(hào)用一個(gè)月,第二個(gè)月体啰,去開一個(gè)新號(hào)攒巍。確保每個(gè)賬號(hào)下的錢2個(gè)月后能進(jìn)賬。
2.應(yīng)用程序必須支持動(dòng)態(tài)更換admob賬號(hào)的能力荒勇,也就是說app每次登陸會(huì)訪問服務(wù)器柒莉,服務(wù)器分配一個(gè)admob賬號(hào)給app,app使用該賬號(hào)枕屉。優(yōu)點(diǎn)常柄,可以動(dòng)態(tài)的調(diào)整廣告的展示鲤氢,免得每次換admob賬號(hào)要重新發(fā)布app
3.admob點(diǎn)擊率最好控制在3%以下搀擂。過高會(huì)封號(hào)
4.單個(gè)admob賬號(hào),每日收入控制在50美金以下卷玉,過高會(huì)查你的app
5.使用一定手段鼓勵(lì)用戶點(diǎn)擊廣告哨颂,我自己寫了一個(gè)類似積分墻的東西,點(diǎn)廣告賺積分相种,用積分去做一些高級(jí)的事情威恼。比如點(diǎn)一次廣告送5個(gè)積分,每天最多30積分(點(diǎn)6個(gè)廣告),下載一段視頻需要15個(gè)積分箫措。當(dāng)然積分的配置也是服務(wù)器動(dòng)態(tài)下傳給app的腹备。如果用戶點(diǎn)擊少了,可以提高每天積分的上限斤蔓,如果用戶點(diǎn)擊多了植酥,就減少點(diǎn)擊上限。所以服務(wù)器很重要弦牡。

1.admob有一個(gè)累計(jì)效應(yīng)友驮,也就是說,如果你每天廣告展示次數(shù)(CPC)都在逐步增加驾锰,說明你是一個(gè)可靠的卸留,穩(wěn)健的廣告展示商,那么admob給的CPM的比重也會(huì)增加椭豫。CPM(按照展示次數(shù)收費(fèi))的量這個(gè)是可遇不可求的耻瑟,是admob根據(jù)你CPC的量來合理分配的。
2.admob我設(shè)置1分鐘換一個(gè)廣告赏酥,過快沒有意義
3.不要自己去點(diǎn)擊廣告匆赃,不要自己搞兩臺(tái)機(jī)器一直展示廣告。
admob不是傻子今缚,他根據(jù)ip算柳,機(jī)型,時(shí)間姓言,有無用戶操作瞬项,很容易判斷用戶的類型。如果一個(gè)ip,一個(gè)機(jī)器何荚,長(zhǎng)時(shí)間展示廣告囱淋,或者大量的點(diǎn)擊,可能會(huì)封號(hào)餐塘。如果一臺(tái)機(jī)器妥衣,沒有用戶操作,長(zhǎng)時(shí)間展示廣告戒傻,也是無效的展示類型税手。
4.admob的內(nèi)容過濾,你不要小看admob的功能需纳,它異常的強(qiáng)大芦倒,他可以自動(dòng)掃描你的app內(nèi)容。比如是否有色情不翩,賭博內(nèi)容兵扬,是否有違法內(nèi)容麻裳,是否有不良字眼。
所以如果你的某個(gè)廣告頁(yè)上有admob廣告器钟,一定要看看該頁(yè)面有無admob禁止的內(nèi)容津坑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市傲霸,隨后出現(xiàn)的幾起案子国瓮,更是在濱河造成了極大的恐慌,老刑警劉巖狞谱,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乃摹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡跟衅,警方通過查閱死者的電腦和手機(jī)孵睬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伶跷,“玉大人掰读,你說我怎么就攤上這事“饶” “怎么了蹈集?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)雇初。 經(jīng)常有香客問我拢肆,道長(zhǎng),這世上最難降的妖魔是什么靖诗? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任郭怪,我火速辦了婚禮,結(jié)果婚禮上刊橘,老公的妹妹穿的比我還像新娘鄙才。我一直安慰自己,他們只是感情好促绵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布攒庵。 她就那樣靜靜地躺著,像睡著了一般败晴。 火紅的嫁衣襯著肌膚如雪浓冒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天位衩,我揣著相機(jī)與錄音裆蒸,去河邊找鬼熔萧。 笑死糖驴,一個(gè)胖子當(dāng)著我的面吹牛僚祷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贮缕,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼辙谜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了感昼?” 一聲冷哼從身側(cè)響起装哆,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎定嗓,沒想到半個(gè)月后蜕琴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宵溅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年凌简,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恃逻。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雏搂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寇损,到底是詐尸還是另有隱情凸郑,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布矛市,位于F島的核電站芙沥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏浊吏。R本人自食惡果不足惜憨愉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卿捎。 院中可真熱鬧配紫,春花似錦、人聲如沸午阵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)底桂。三九已至植袍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間籽懦,已是汗流浹背于个。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暮顺,地道東北人厅篓。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓秀存,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親羽氮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子或链,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容