版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android开发必备知识点有哪些
这篇文章主要介绍“Android开发必备知识点有哪些”,在日常操作中,相信很多人在Android开发必备知识点有哪些问题上存在疑惑,在下查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android开发必备知识点有哪些”的疑惑有所帮助!接下来,请跟着在下一起来学习吧!1.使用ADB查看CPU温度(debug版本)查看CPU命令如下:adb
shell
cat
/sys/class/thermal/thermal_zone*/temp2.查看CPU返回内容对应分类信息adb
shell
cat
/sys/class/thermal/thermal_zone*/typehttps://upload-images.jianshu.io/upload_images/3117364-912a19dd5cc4fe22?imageMogr2/auto-orient/stripCPU温度查看命令方法由此查看的CPU温度包含小数点后三位,小数点省去,此方法适用于MTK平台。3.MTKlog中查看CPU温度kernellog中搜索关键字T_AP查看CPU温度。https://upload-images.jianshu.io/upload_images/3117364-f82df4a1578b9767?imageMogr2/auto-orient/strip1.debug版本跳过开机向导方案1.点击四次快捷操作连续点击屏幕四角(左上-->右上-->右下-->左下),既可跳过开机向导。2.adb命令disable开机向导adb
shell
settings
put
secure
user_setup_complete
1adb
shell
settings
put
global
device_provisioned
1adb
shell
pm
disable
com.google.android.setupwizard/.SetupWizardActivity2.debug重启开机向导方案跳过开机向导后又想重新走开机向导,可以尝试以下命令。1.将开机向导完成后设置的值复位命令如下:adb
shell
settings
put
secure
user_setup_complete
0adb
shell
settings
put
global
device_provisioned
02.设置开机向导可用,并启动过完开机向导后,会设置开机向导apk不可用。此时我们应该设置开机向导为enble状态。adb
shell
pm
enable
com.google.android.setupwizard/.SetupWizardActivityadb
shell
am
start
-n
com.google.android.setupwizard/.SetupWizardActivity3.开机向导log调试打开开机向导调试Log方式如下:adb
shell
setprop
log.tag.SetupWizard
VERBOSE4.代码中跳过开机向导的方法在代码中跳过开机向导的方法如下:
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");
}
}1.使用adb命令抓log查看adblogcat|findstrDisplayed或者直接抓取adbLog,然后搜索关键字Displayedhttps://upload-images.jianshu.io/upload_images/3117364-220378b7ed8c2635?imageMogr2/auto-orient/stripAPP冷启动时间统计https://upload-images.jianshu.io/upload_images/3117364-eaf5c35a57a870c3?imageMogr2/auto-orient/stripadbLog中搜索关键字Display2.查看多次app冷启动的方法测试10次Chrome冷启动的方法如下:adbshellamstart-S-R10-Wcom.android.chrome/com.google.android.apps.chrome.Main测试结果如下:C:\Users\Administrator>adb
shell
am
start
-S
-R10
-W
com.android.chrome/com.google.android.apps.chrome.MainStopping:
com.android.chromeStarting:
Intent
{
act=ent.action.MAIN
cat=[ent.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=ent.action.MAIN
cat=[ent.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:
549Completeprivate
static
final
boolean
USER_BUILD
=
android.os.Build.IS_USER;查看Build.java发现,这些是对外部apk隐藏的方法,只有系统平台签名的应用才可以使用。
/**
{@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);/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);1.将所有的systemdump文件追加到一个文件中首先我们需要抓到dumpsyslog,然后将所有的systemcore*文件追加到一个文件中。cat
systemcore*
>
allhttps://upload-images.jianshu.io/upload_images/3117364-e621d2e877e128bb?imageMogr2/auto-orient/strip将sysdump所有文件追加到一个文件中2.使用对应版本的vmlinux解析dump文件使用crash_arm命令对dump文件进行解析32位系统使用如下:./crash_armvmlinuxall-mphys_base=0x8000000064位系统使用如下命令:./crash_arm64vmlinuxall-mphys_offset=0x800000003.解析成功后进行调试成功解析dump后解析log方法log>log.txthttps://upload-images.jianshu.io/upload_images/3117364-af209775c7779c07?imageMogr2/auto-orient/strip使用log命令读取log到指定文件修改
device\sprd\xxxx\common\rootdir\root\mon.rc在onpost-fs-data
中添加如下内容:on
post-fs-data
setprop
persist.ylog.enabled
1//增加这一句用于打开ylog
setprop
debug.sysdump.enabled
true
//增加这一句用于打开sysdump
setprop
persist.sys.eng.reset
1
//再增加这一句
start
ylog
public
boolean
isMonkeyRunning()
{
return
ActivityManager.isUserAMonkey();
}修改以下路径下配置的属性值既可alps\device\mediatek\common\mtklog将false
改为true就可以打开对应的logmtklog_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
=
2000.enabled
=
.maxsize
=
600com.mediatek.log.gps.enabled
=
false输入暗码
*#*#3646633#*#*,进入MTKLogger
界面,右上角打开LoggerSetting,手动关闭除MoblieLog之外的开关。关闭方法请看下图:https://upload-images.jianshu.io/upload_images/3117364-5fe27fda34c7b622?imageMogr2/auto-orient/stripmtk平台开启Mobilelog参考图输入暗码
*#*#83781#*#*,进入SPRDLogger
界面,右上角打开Settings,点击Customscene,关闭除Androidlog之外的开关,关闭方法请看下图。https://upload-images.jianshu.io/upload_images/3117364-4c4cc374d73c1516?imageMogr2/auto-orient/stripSPRD平台开启Androidlog参考图只开AndroidLog(参考十一、SPRD平台只开Androidlog方法)进入DEBUG&Log界面,systeminfo->
PowerLog;打开PowerGurulog和wakelocklog;重启设备。使用下面命令,复位一下batteryhistoryadb
shell
dumpsys
batterystats
--enable
full-wake-historyadb
shell
dumpsys
batterystats
--reset测试完成后,使用下面命令,抓取bugreportadb
rootadb
bugreport
>
bugreport.zip最后将andoridlog和bugreport.zip
都提供出来。获取ActivityTop的方法如下://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<RunningTaskInfo>
runningTaskInfos
=
activityManager
.getRunningTasks(1);
if
(runningTaskInfos
!=
null)
{
ComponentName
f
=
runningTaskInfos.get(0).topActivity;
topActivityPackage
=
f.getPackageName();
//Slog.e("wangjie",
"topActivityPackage"+topActivityPackage);
}
return
topActivityPackage;
}孟加拉语开机向导欢迎语不对,客户要求去掉开机向导界面欢迎语方法。idh.code/frameworks/base/core/java/android/widget/TextView.javapublic
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);
...
...
}...
...}展讯平台修改状态栏时间显示秒方法如下adb
shell
pm
enable
com.android.systemui/com.android.systemui.tuner.TunerActivityadb
shell
am
start
-n
com.android.systemui/com.android.systemui.tuner.TunerActivity进入设置--系统--界面界面调谐器--状态栏--时间--显示时分秒。判断多用户方法如下://
import
android.os.UserHandle;if(UserHandle.myUserId()
!=
UserHandle.USER_OWNER){
//
给管理员用户
进行操作}AndroidGO版本下,为了兼容系统性能,牺牲部分UI体验,比如最近任务列表模糊,Settings界面加载由模糊到清晰,Launcher图标加载由模糊到清晰,但是这个很影响用户体验,个人认为不太好,去掉模糊效果的方案如下: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.java1.AppWindowContainerController修改方法在AppWindowContainerController.java类中,请注释掉scheduleAddStartingWindow方法实现。public
class
AppWindowContainerController
extends
WindowContainerController<AppWindowToken,
AppWindowContainerListener>
{...
...//
注释掉该方法
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修改方法将系统手动设置为非低内存设备,比如将isLowRamDevice=false状态。class
TaskSnapshotController
{...
...//
将系统手动设置为非低
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土施工难点攻克方案
- 2023水暖工高级考试考前押题卷附精准答案解析
- 公司绩效考核标准化方案
- 风力发电机组基础施工技术方案
- 工程项目改建与扩建管理方案
- 风电场接入系统设计与实施方案
- 儿童医院医疗设备配置方案
- 电池废弃物无害化处理技术方案
- 2026年旅游服务礼仪与沟通技巧考试
- 城市更新污水处理设施建设方案
- 五年级下册劳动教案完整版
- ISO28000:2022供应链安全管理体系
- 最先进的茶叶工艺机械
- 新媒体广告创新与市场营销策略分析研究
- 青海开放大学《汽车故障诊断技术》终结性考试复习题库(附答案)
- LY/T 3352-2023国际湿地城市认证提名指标
- 幼儿园故事课件:《精忠报国》
- 羽绒知识概述课件
- 浙江省通用安装工程预算定额第一册
- 第3章-母材的熔化和焊缝成形课件
- 浙教版科学八年级下册《化学方程式》简单计算专项训练(含答案解析)
评论
0/150
提交评论