真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android開發(fā)必備知識點(diǎn)有哪些

這篇文章主要介紹“Android開發(fā)必備知識點(diǎn)有哪些”,在日常操作中,相信很多人在Android開發(fā)必備知識點(diǎn)有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android開發(fā)必備知識點(diǎn)有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的資中網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

一、查看CPU 溫度

  • 1.使用ADB 查看CPU溫度(debug版本)

查看CPU命令如下:

adb shell cat /sys/class/thermal/thermal_zone*/temp
  • 2.查看CPU 返回內(nèi)容對應(yīng)分類信息

adb shell cat /sys/class/thermal/thermal_zone*/type

Android開發(fā)必備知識點(diǎn)有哪些

CPU 溫度查看命令方法

由此查看的 CPU 溫度包含小數(shù)點(diǎn)后三位,小數(shù)點(diǎn)省去,此方法適用于MTK 平臺。

  • 3.MTK log 中查看CPU 溫度

kernel log中 搜索關(guān)鍵字 T_AP 查看CPU 溫度。

Android開發(fā)必備知識點(diǎn)有哪些

二、 開機(jī)向?qū)д{(diào)試相關(guān)方法

1.debug 版本跳過開機(jī)向?qū)Х桨?/h3>
  • 1.點(diǎn)擊四次快捷操作
    連續(xù)點(diǎn)擊屏幕四角(左上-->右上-->右下-->左下),既可跳過開機(jī)向?qū)А?/p>

  • 2.adb 命令disable 開機(jī)向?qū)?/p>

adb shell settings put secure user_setup_complete 1adb shell settings put global device_provisioned 1adb shell pm disable com.google.android.setupwizard/.SetupWizardActivity

2.debug 重啟 開機(jī)向?qū)Х桨?/h3>

跳過開機(jī)向?qū)?后 又想重新走開機(jī)向?qū)?,可以嘗試以下命令。

  • 1.將開機(jī)向?qū)?完成后設(shè)置的值復(fù)位

命令如下:

adb shell settings put secure user_setup_complete 0adb shell settings put global device_provisioned 0
  • 2.設(shè)置開機(jī)向?qū)Э捎?,并啟?/p>

過完開機(jī)向?qū)Ш螅瑫O(shè)置開機(jī)向?qū)?code>apk不可用。
此時(shí)我們應(yīng)該設(shè)置開機(jī)向?qū)?code>enble狀態(tài)。

adb shell pm enable com.google.android.setupwizard/.SetupWizardActivityadb shell am start -n com.google.android.setupwizard/.SetupWizardActivity

3. 開機(jī)向?qū)?log 調(diào)試

打開開機(jī)向?qū)д{(diào)試Log方式如下:

adb shell setprop log.tag.SetupWizard VERBOSE

4. 代碼中跳過開機(jī)向?qū)У姆椒?/h3>

在代碼中跳過開機(jī)向?qū)У姆椒ㄈ缦拢?/p>

        private  void  SkipSetupwizard(){            ActivityManager activityAanager = (ActivityManager) mContext                .getSystemService(Context.ACTIVITY_SERVICE);            ComponentName cn = activityAanager.getRunningTasks(1).get(0).topActivity;            String pName = cn.getPackageName();            if("com.google.android.setupwizard".equals(pName))            {                Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);                Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 1);                activityAanager.forceStopPackage("com.google.android.setupwizard");                Log.i("wjwj","----------skip com.google.android.setupwizard--------");            }               }

三、查看APP啟動時(shí)間

1.使用adb 命令抓log 查看

adb logcat | findstr Displayed
或者直接抓取 adb Log, 然后搜索關(guān)鍵字 Displayed

Android開發(fā)必備知識點(diǎn)有哪些

APP 冷啟動時(shí)間統(tǒng)計(jì)

Android開發(fā)必備知識點(diǎn)有哪些

adb Log 中搜索關(guān)鍵字Display

2.查看多次 app 冷啟動的方法

測試 10次 Chrome 冷啟動的方法如下:
adb shell am start -S -R10 -W com.android.chrome/com.google.android.apps.chrome.Main

測試結(jié)果如下:

C:\Users\Administrator>adb shell am start -S -R10 -W com.android.chrome/com.google.android.apps.chrome.MainStopping: com.android.chromeStarting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.chrome/com.google.android.apps.chrome.Main }Status: okActivity: com.android.chrome/org.chromium.chrome.browser.firstrun.FirstRunActivityTotalTime: 1514WaitTime: 1525CompleteStopping: com.android.chromeStarting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.android.chrome/com.google.android.apps.chrome.Main }Status: okActivity: com.android.chrome/org.chromium.chrome.browser.firstrun.FirstRunActivityTotalTime: 534WaitTime: 549Complete

四、判斷 user ,userdebug 版本的方法

private static final boolean USER_BUILD = android.os.Build.IS_USER;

查看 Build.java 發(fā)現(xiàn),這些是對外部apk 隱藏的方法,只有系統(tǒng)平臺 簽名的應(yīng)用才可以使用。

    /** {@hide} */    public static final boolean IS_ENG = "eng".equals(TYPE);    /** {@hide} */    public static final boolean IS_USERDEBUG = "userdebug".equals(TYPE);    /** {@hide} */    public static final boolean IS_USER = "user".equals(TYPE);

五、修改截屏默認(rèn)存儲路徑

/frameworks/base/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java

       // import com.mediatek.storage.StorageManagerEx;       String defaultWritePath = StorageManagerEx.getDefaultPath()+File.separator+"Pictures";        mScreenshotDir = new File(defaultWritePath, SCREENSHOTS_DIR_NAME);

六、解析 kernel dump 方法

1.將所有的systemdump 文件追加到一個(gè)文件中

首先我們需要抓到dumpsys log,然后將所有的systemcore* 文件 追加到一個(gè)文件中。

cat systemcore* > all

Android開發(fā)必備知識點(diǎn)有哪些

將sysdump 所有文件 追加到一個(gè)文件中

2. 使用對應(yīng)版本的vmlinux 解析dump文件

使用 crash_arm 命令對 dump 文件進(jìn)行解析

  • 32位系統(tǒng)使用如下:
    ./crash_arm vmlinux all -m phys_base=0x80000000

  • 64位系統(tǒng)使用如下命令:
    ./crash_arm64 vmlinux all -m phys_offset=0x80000000

3.解析成功后進(jìn)行調(diào)試

成功解析dump后解析log方法
log > log.txt

Android開發(fā)必備知識點(diǎn)有哪些

使用 log 命令 讀取log 到指定文件

七、SPRD 默認(rèn)打開 Ylog 以及dumpsys enable方法

修改 device\sprd\xxxx\common\rootdir\root\init.common.rc
on post-fs-data 中添加如下內(nèi)容:

on post-fs-data     .....       setprop persist.ylog.enabled 1//增加這一句用于打開ylog       setprop  debug.sysdump.enabled  true //增加這一句用于打開sysdump       setprop   persist.sys.eng.reset 1 //再增加這一句       start ylog

八、判斷是否正在 monkey 測試的方法

    public boolean isMonkeyRunning() {        return ActivityManager.isUserAMonkey();    }

九、修改MTK log 模式的方法

修改以下路徑下配置的屬性值既可alps\device\mediatek\common\mtklog
false 改為true就可以打開對應(yīng)的log

mtklog_path = internal_sdcom.mediatek.log.mobile.enabled = falsecom.mediatek.log.mobile.maxsize = 500com.mediatek.log.mobile.totalmaxsize = 1000com.mediatek.log.modem.enabled = falsecom.mediatek.log.modem.maxsize = 2000com.mediatek.log.net.enabled = falsecom.mediatek.log.net.maxsize = 600com.mediatek.log.gps.enabled = false

十、MTK平臺 只開Mobile log方法

輸入暗碼 *#*#3646633#*#*,進(jìn)入MTK Logger 界面,右上角打開Logger Setting,手動關(guān)閉除Moblie Log之外的開關(guān)。

關(guān)閉方法請看下圖:

Android開發(fā)必備知識點(diǎn)有哪些

mtk 平臺開啟 Mobile log 參考圖

十一、SPRD平臺 只開Android log方法

輸入暗碼 *#*#83781#*#*,進(jìn)入SPRD Logger 界面,右上角打開Settings, 點(diǎn)擊Custom scene,關(guān)閉除Android log之外的開關(guān),關(guān)閉方法請看下圖。

Android開發(fā)必備知識點(diǎn)有哪些

SPRD 平臺開啟 Android log 參考圖

十二、SPRD 平臺功耗 Log 注意事項(xiàng)

  1. 只開 Android Log(參考十一、SPRD平臺 只開Android log方法

  2. 進(jìn)入DEBUG&Log界面,system info-> Power Log;

  3. 打開PowerGuru logwakelock log;

  4. 重啟設(shè)備。

  5. 使用下面命令,復(fù)位一下battery history

adb shell dumpsys batterystats --enable full-wake-historyadb shell dumpsys batterystats --reset
  1. 測試完成后,使用下面命令,抓取bugreport

adb rootadb bugreport > bugreport.zip
  1. 最后將andorid logbugreport.zip 都提供出來。

十三、獲取Top Activity 包名

獲取Activity Top的方法如下:

//import android.app.ActivityManager;//import android.app.ActivityManager.RunningTaskInfo;//import android.content.ComponentName;//import java.util.List;// 獲取top Activity apk        public String getTopActivityPackageName(Context context) {            String topActivityPackage = null;            ActivityManager activityManager = (ActivityManager) (context                    .getSystemService(android.content.Context.ACTIVITY_SERVICE));            List runningTaskInfos = activityManager                    .getRunningTasks(1);            if (runningTaskInfos != null) {                ComponentName f = runningTaskInfos.get(0).topActivity;                topActivityPackage = f.getPackageName();                 //Slog.e("wangjie", "------topActivityPackage---------"+topActivityPackage);            }            return topActivityPackage;        }

十四、 修改Google 開機(jī)向?qū)g迎語

孟加拉語開機(jī)向?qū)g迎語不對,客戶要求去掉開機(jī)向?qū)Ы缑鏆g迎語方法。

idh.code/frameworks/base/core/java/android/widget/TextView.java

public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {... ...     public void setTextLocale(@NonNull Locale locale) {+        // add for  Bangla language+        if (getContext().getClass().getName().equals("com.google.android.setupwizard.user.WelcomeActivity") &&+                locale.getLanguage().equals("bn") && locale.getCountry().equals("BD"))+        {+            Log.i(LOG_TAG, "find text:" + getText());+            if (!getText().equals("") && !getText().toString().contains("("))+            Log.i(LOG_TAG, "set text:" + getText());+            setText("");+        }+        // add for  Bangla language         mLocalesChanged = true;         mTextPaint.setTextLocale(locale);         ... ...          }... ...}

十五、修改狀態(tài)欄 時(shí)間顯示秒

展訊平臺修改狀態(tài)欄 時(shí)間顯示秒方法如下

adb shell pm enable com.android.systemui/com.android.systemui.tuner.TunerActivityadb shell am start -n com.android.systemui/com.android.systemui.tuner.TunerActivity

進(jìn)入設(shè)置--系統(tǒng)--界面界面調(diào)諧器--狀態(tài)欄--時(shí)間--顯示時(shí)分秒。

十六、判斷多用戶方法

判斷多用戶方法如下:

// import android.os.UserHandle;if(UserHandle.myUserId() != UserHandle.USER_OWNER){   // 給管理員用戶 進(jìn)行操作}

十七、低RAM(1G)下的模糊效果去除

Android GO 版本下,為了兼容系統(tǒng)性能,犧牲部分UI體驗(yàn),比如 最近任務(wù)列表模糊,Settings 界面加載由模糊到清晰,Launcher 圖標(biāo)加載由模糊到清晰,但是這個(gè)很影響用戶體驗(yàn),個(gè)人認(rèn)為不太好,去掉模糊效果的方案如下:

1.需要修改的文件如下:

 frameworks/base/services/core/java/com/android/server/wm/AppWindowContainerController.java  frameworks/base/services/core/java/com/android/server/wm/TaskSnapshotController.java     frameworks/base/services/core/java/com/android/server/wm/TaskSnapshotPersister.java
  • 1.AppWindowContainerController 修改方法

在AppWindowContainerController.java 類中,請注釋掉scheduleAddStartingWindow方法實(shí)現(xiàn)。

public class AppWindowContainerController        extends WindowContainerController {... ...// 注釋掉該方法    void scheduleAddStartingWindow() {        // Note: we really want to do sendMessageAtFrontOfQueue() because we        // want to process the message ASAP, before any other queued        // messages.        /***        if (!mService.mAnimationHandler.hasCallbacks(mAddStartingWindow)) {            mContainer.startingAdding = true;            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Enqueueing ADD_STARTING");            mService.mAnimationHandler.postAtFrontOfQueue(mAddStartingWindow);        } ***/    }... ...}
  • 2.TaskSnapshotController 修改方法

將系統(tǒng)手動設(shè)置為非低內(nèi)存設(shè)備,比如將isLowRamDevice =false狀態(tài)。

class TaskSnapshotController {... ...// 將系統(tǒng)手動設(shè)置為非低內(nèi)存設(shè)備  final boolean isLowRamDevice = false; //final boolean isLowRamDevice = ActivityManager.isLowRamDeviceStatic();... ...
  • 3.TaskSnapshotPersister 修改方法

在TaskSnapshotPersister 類中,將DISABLE_FULL_SIZED_BITMAPS狀態(tài)設(shè)置為false。

class TaskSnapshotPersister {... ...// 將DISABLE_FULL_SIZED_BITMAPS狀態(tài)設(shè)置為false。 static final boolean DISABLE_FULL_SIZED_BITMAPS = false;//static final boolean DISABLE_FULL_SIZED_BITMAPS = ActivityManager.isLowRamDeviceStatic();... ...}

十八、屏幕四周圓角方案

SPRD屏幕四周圓角方案需要修改***.dtsi 文件。
以sc7731e.dtsi 為例,需要修改的文件路徑為kernel4.4/arch/arm/boot/dts/sc7731e.dtsi,其中15 表示圓角的弧度,默認(rèn)直角90度
修改方法如下:

soc: soc {        ap-ahb {            dispc0: dispc@20800000 {                ... ...                sprd,ip = "dpu-lite-r1p0";                sprd,soc = "pike2";                                // 15 表示圓角的弧度                sprd,corner-radius = <15>;                /* output port */                port {                    dispc0_out: endpoint@0 {                        remote-endpoint = <&dsi0_in>;                    };                };            };... ...}

到此,關(guān)于“Android開發(fā)必備知識點(diǎn)有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


名稱欄目:Android開發(fā)必備知識點(diǎn)有哪些
文章轉(zhuǎn)載:http://weahome.cn/article/gjesii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部