混淆apk是一個(gè)很基礎(chǔ)的工作,博客上也有一堆介紹,本文提供一下這類工作的解決思路。在安卓源碼下面和android studio里面的做法差異不大,本文以android源碼舉例。
十載的平陸網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整平陸建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“平陸網(wǎng)站設(shè)計(jì)”,“平陸網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
首先在對(duì)應(yīng)mk文件里面添加proguard enabled的語(yǔ)句,系統(tǒng)有一個(gè)自帶的build/core/proguard.flags,默認(rèn)是使用這個(gè)文件,而且一般項(xiàng)目默認(rèn)是關(guān)閉的,這也是有原因的。因?yàn)檫@里的proguard.flags是沒(méi)有針對(duì)app的配置的,使用默認(rèn)的混淆,app很有可能就不工作了。
添加了mk文件修改之后,在Android.mk同級(jí)根目錄創(chuàng)建本app自有的proguard.flags。新增內(nèi)容如下,這里需要注意,網(wǎng)上很多demo,基本分為三部分,一部是保留app基礎(chǔ)功能部分的內(nèi)容不混淆;2是保持app對(duì)外接口,例如get、set、isxx、AIDL、public、native層的接口或者類;3.是第三方j(luò)ar包或接口。混淆的基本原理就是將上訴類或接口進(jìn)行統(tǒng)一簡(jiǎn)單字母的替換,如果改變了這些對(duì)外接口的名字,很有可能被別人使用的時(shí)候就找不到對(duì)應(yīng)哦接口
一些第三方的庫(kù)如何不進(jìn)行混淆,這個(gè)根據(jù)項(xiàng)目特點(diǎn),可以自行搜索,比如百度的地圖包什么的。
然后是如何驗(yàn)證和解決混淆過(guò)程遇到的問(wèn)題,因?yàn)槭菍?duì)接口名進(jìn)行替換,如果出現(xiàn)混淆問(wèn)題的話,log里面一定會(huì)有類似
這個(gè)時(shí)候只需要對(duì)相關(guān)接口進(jìn)行例外(-keep)即可,然后用android-studio,直接打開(kāi)或者dex2jar進(jìn)行反解可以看到相關(guān)的接口是否被簡(jiǎn)單替換。
以下文章來(lái)源于小雨編程 ,作者小雨tt
“使用機(jī)智云AIoT平臺(tái)支持項(xiàng)目自生成APP源碼,即可輕松解決Android開(kāi)源項(xiàng)目啦,”開(kāi)發(fā)者下載源碼后,只需要優(yōu)化UI和設(shè)計(jì)設(shè)備控制界面控制邏輯,源碼的控制頁(yè)面編寫(xiě)了機(jī)智云SDK控制設(shè)備的標(biāo)準(zhǔn)流程,APP源碼二次開(kāi)發(fā)過(guò)程中只需按照該流程進(jìn)行相關(guān)代碼的優(yōu)化即可快速完成針對(duì)自身產(chǎn)品的智能控制APP。
因此只要我們將源碼工程文件成功導(dǎo)入Android Studio,那么我們便可以自由定制我們的應(yīng)用程序,那么如何正確導(dǎo)入到Android Studio中,編譯成功并在真機(jī)上運(yùn)行呢?
01下載項(xiàng)目
在機(jī)智云官網(wǎng),我們定義好數(shù)據(jù)點(diǎn)后,在服務(wù)-應(yīng)用開(kāi)發(fā)子菜單中,下載工程文件。
機(jī)智云APP代碼自動(dòng)生成服務(wù)介紹:
02方法
由于本地環(huán)境與開(kāi)源工程文件中不同,理論上我們把開(kāi)源工程文件中的環(huán)境修改成和我們本地相同的就可以順利導(dǎo)入了。
為了正確修改開(kāi)源工程配置文件,我們可以新建一個(gè)本地工程文件夾,對(duì)照參考。
第一步
修改根目錄下的build.gradle文件
將開(kāi)源工程項(xiàng)目中的build.gradle與本地工程保持一致。
第二步
修改gradle/wrapper文件夾里gradle-wrapper.properties配置文件
將distributionUrl中的gradle版本保持與本地項(xiàng)目一致;
第三步
我們?cè)傩薷腶pp目錄下的build.gradle文件
這時(shí)候開(kāi)源項(xiàng)目與我們的本地項(xiàng)目區(qū)別就有點(diǎn)大了,我們只需擇其重點(diǎn)進(jìn)行修改
將機(jī)智云版 本的 compileSdkVersion , buildToolsVersion , minSdkVersion , targetSdkVersion 與本地保持一致;這里由于自2018年底開(kāi)始Android已經(jīng)拋棄了 compile ,所以這里我們需要將 compile 換成 implementation ,同時(shí)將 com.android.support:design , com.android.support:appcompat 換成與本地版本相一致的28.0.0版本
下面是修改之后的版本:
第四步
導(dǎo)入項(xiàng)目再配置
打開(kāi)AndroidStudio修改 基本的配置參數(shù)已經(jīng)修改的差不多了,這時(shí)我們導(dǎo)入項(xiàng)目試一試,打開(kāi)Android Studio歡迎界面,點(diǎn)擊Open an existing Android Studio project;
在工程界面工具欄,點(diǎn)擊編譯按鈕,這時(shí)候可能還會(huì) 報(bào) 一些小錯(cuò)誤,比如:
它表示最小開(kāi)發(fā)版本不需要在清單文件中解釋,我們只需點(diǎn)擊藍(lán)色下劃線,跳轉(zhuǎn)到如下界面。
點(diǎn)擊方框內(nèi)容,打開(kāi)清單文件
刪除改行,再Try Again重新同步一下gradle工程。
第五步
修改部分過(guò)時(shí)的函數(shù)
點(diǎn)擊小錘子重新編譯一下工程,此時(shí)仍會(huì)報(bào)如下錯(cuò)誤:
這里報(bào)錯(cuò)(找不到符號(hào)變量 MAXRIX_SAVE_FLAG ) 這是因?yàn)槲覀兊膕dk版本較高,新的sdk已經(jīng)對(duì)之前老版本里的方法進(jìn)行了修改,調(diào)用 canvas.save(Canvas.CLIP_SAVE_FLAG) ;方法編譯器報(bào)錯(cuò),我們只需要 save() 方法里的參數(shù)刪除即可,直接調(diào)用 canvas.save() 方法就編譯通過(guò)了。
此時(shí),我們的APP已經(jīng)可以運(yùn)行啦!
end..
這篇教程是以使用機(jī)智云AIoT平臺(tái)的源碼為例,如何正確的編譯項(xiàng)目。其實(shí)對(duì)于大多數(shù)網(wǎng)上的Android開(kāi)源項(xiàng)目都可以用這種方法來(lái)導(dǎo)入。
錯(cuò)過(guò)了#秋天的第一杯奶茶,那我們一起來(lái)敲代碼吧
今日份推薦,安排加購(gòu)鴨..
中移Cat.1 4G DTU模組ML302-GC211支持OTA免開(kāi)發(fā)快速接入機(jī)智云
我們經(jīng)常會(huì)用Mac系統(tǒng)創(chuàng)建IOS應(yīng)用項(xiàng)目,但是如何在Mac系統(tǒng)中創(chuàng)建Android應(yīng)用項(xiàng)目呢?下面我給大家分享一下。
工具/材料
Android Studio
首先我們?cè)贛ac系統(tǒng)中要安裝Android Studio軟件,然后點(diǎn)擊Start a new Android Studio project選項(xiàng),如下圖所示
接下來(lái)進(jìn)入項(xiàng)目名稱設(shè)置界面,這里需要給項(xiàng)目起一個(gè)名字,如下圖所示
然后需要我們選擇一下創(chuàng)建的Android應(yīng)用運(yùn)用哪個(gè)SDK,如下圖所示,我建議選擇比較穩(wěn)定的版本
接下來(lái)會(huì)進(jìn)入主界面樣式選擇界面,我們選擇空模板樣式即可,如下圖所示
接著給主界面文件起名字,這里默認(rèn)是MainActivity,我們不需要設(shè)置,默認(rèn)即可,如下圖所示
設(shè)置完以上信息以后,我們就可以看到Android Studio就會(huì)進(jìn)入項(xiàng)目創(chuàng)建進(jìn)度了,如下圖所示
接下來(lái)創(chuàng)建好項(xiàng)目以后,默認(rèn)主界面就會(huì)顯示項(xiàng)目列表,如下圖所示
如果想運(yùn)行項(xiàng)目的話我們點(diǎn)擊頂部的運(yùn)行按鈕即可,如下圖所示
最后Android Studio就會(huì)啟動(dòng)Android手機(jī)模擬器來(lái)展示我們項(xiàng)目的信息了,如下圖所示
有兩個(gè)辦法打開(kāi)項(xiàng)目:
1.通過(guò)"File-New-Project-create project from existing source"
contents框中選取第二個(gè) create project from existing source
點(diǎn)擊browse按鈕——選擇你要引入的項(xiàng)目(已有的項(xiàng)目)
然后下面的把按本選擇上重新選擇一下項(xiàng)目的版本號(hào)
2.通過(guò)"File-import-general-Existing Projects into Workspace"
在知道unity remote之前,我都是導(dǎo)出安裝包到手機(jī)上調(diào)試,真的很麻煩。
但是這篇文章也不是講怎樣使用unity remote調(diào)試項(xiàng)目。因?yàn)?。。。emmmm看了很多教程,結(jié)果沒(méi)有一次成功的。
在這n多次嘗試之后我發(fā)現(xiàn)了相對(duì)比較便捷的方案,需要使用usb連接電腦,build and run 項(xiàng)目就可以直接在手機(jī)上打開(kāi)了。
————————————————以上都是廢話————————————————————————
要?jiǎng)?chuàng)建android項(xiàng)目所需要的的 Android SDK之類的可以直接在unity hub中添加對(duì)應(yīng)的組件即可。
配置sdk和構(gòu)建android項(xiàng)目就不說(shuō)了,很多教程的。
將手機(jī)設(shè)置為開(kāi)發(fā)者模式、打開(kāi)開(kāi)發(fā)者選項(xiàng)中的usb調(diào)試。
在unity項(xiàng)目中點(diǎn)擊build and run 第一次需要在電腦上創(chuàng)建安裝包,創(chuàng)建完成之后在手機(jī)上會(huì)提示安裝你的應(yīng)用。安裝完之后就可以在手機(jī)上運(yùn)行啦。
之后如果有修改項(xiàng)目?jī)?nèi)容,再次點(diǎn)擊build and run,當(dāng)項(xiàng)目重新構(gòu)建好之后,手機(jī)上的應(yīng)用也會(huì)跟著自動(dòng)更新并打開(kāi)。
工具/材料
電腦
android studio
01
從網(wǎng)上下載并安裝Android Studio然后打開(kāi)它。現(xiàn)在,你準(zhǔn)備好開(kāi)始你的第一個(gè)Android應(yīng)用程序!
首先是這個(gè)android項(xiàng)目的項(xiàng)目名,在這里進(jìn)行輸入即可
注意,這里我們使用的android studio的版本為2.2
一直下一步,等待一定的時(shí)間,這取決于你機(jī)器的配置,android studio最為谷歌官方唯一指定的android項(xiàng)目開(kāi)發(fā)ide,具有超高度的功能集合性,同時(shí)后面我們會(huì)看到android studio采用和eclipse不同的編譯方式,即Gradle編譯,以及采用云資源模式(服務(wù)器全在海外,部分功能需要翻墻才能使用,醉了),所以,不要對(duì)其卡慢抱有不滿情緒.
02
選擇對(duì)應(yīng)的android sdk版本,android像ios一樣,也有很多分類版本了,從低到高,還有像android wear(手表), android TV(電視),android auto(車(chē)載)等各種版本,選擇你要將這個(gè)項(xiàng)目跑到什么設(shè)備上邊去,以及系統(tǒng)的版本,這里我們選擇android手機(jī)項(xiàng)目,版本可以選擇4.0,目前4.0基本就是最低版本,當(dāng)然微信,qq,支付寶之類的都是一直支持到2.3版本的
03
這里是android項(xiàng)目的布局文件,目前因?yàn)槲覀冞@個(gè)項(xiàng)目只有一個(gè)主窗口,這個(gè)布局文件就是屬于主窗口的,這里記錄的這個(gè)窗口中有哪些控件,以及這些控件的位置和排列模式,像TextView就是一個(gè)文本控件,而RelativeLayout則是布局控件,用于控制控件的布局。
04
這就是穿著中的gradle編譯的編譯配置文件了,里面包含了編譯中的各種配置選項(xiàng),對(duì)于從eclipse中轉(zhuǎn)過(guò)來(lái)的人來(lái)說(shuō),要搞懂這里的各種配置可是要費(fèi)不少腦子的哈!
05
這是android項(xiàng)目的清單文件,這里包含了這個(gè)應(yīng)用程序的圖標(biāo)設(shè)置,以及activity等,activity是android四大組件之一,可以直觀理解為我們看到的一個(gè)個(gè)的窗體,凡是需要顯示出來(lái)的activity,都需要在這里注冊(cè)寫(xiě)明
06
這里是窗口的java主類,android的主要編程語(yǔ)言是java語(yǔ)言,當(dāng)然也有支持c++編程的ndk,以及現(xiàn)在很火的前端腳本編寫(xiě)android項(xiàng)目的方法,這個(gè)類表示主窗口,OnCreat()方法會(huì)在這個(gè)界面被啟動(dòng)的時(shí)候執(zhí)行。
07
點(diǎn)擊這里即可運(yùn)行這個(gè)由系統(tǒng)為我們編寫(xiě)好android項(xiàng)目了,沒(méi)錯(cuò),這已經(jīng)是一個(gè)完成的android項(xiàng)目,只是比較簡(jiǎn)單而已,但主要部件都不少。
08
我們啟動(dòng)的應(yīng)用就是跑在這里的模擬器當(dāng)中的,我們可以創(chuàng)建自己的模擬器,自由的對(duì)模擬器的配置進(jìn)行自定義,包括模擬器的系統(tǒng)版本
09
完美,我們的第一個(gè)應(yīng)用程序已經(jīng)跑起來(lái)了,雖然只是顯示了一個(gè)Hello World文本,不過(guò)怎們樣都算完成了一個(gè)android應(yīng)用程序,后續(xù)只要對(duì)其進(jìn)行打包簽名,混淆加密后即可發(fā)布到應(yīng)用市場(chǎng)供別人下載使用.
本文標(biāo)題:android項(xiàng)目,android項(xiàng)目運(yùn)行時(shí)閃退
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article8/dsiicip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)頁(yè)設(shè)計(jì)公司、標(biāo)簽優(yōu)化、電子商務(wù)、、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)