Android快速获取当前Activity类名的三种方法

安卓使用adb命令查看当前activity 阅读详情
AI摘要

本文介绍了三种在Android中获取当前Activity类名的方法:通过BaseActivity继承、使用adb命令行以及创建服务自动打印。adb命令提供详细信息但需频繁输入,而服务方式则简单直接。完整代码和更多讨论可在原文找到。

据说程序猿最讨厌的两件事:一是给代码写详细的注释;二是阅读别人的代码没注释。
在程序猿的世界里,大部分都是接手的别人的项目,而对于一些项目文档全面,项目代码规范,在阅读代码的时候相对轻松些,不至于当前是哪个Activity都不知道。But,理想是丰满的,现实是骨感的。规范的一点的,会写个BaseActivity,让项目中所有的Activity继承这个BaseActivity,然后再Activity中获取当前的活动名,包括包名。
那本文就说的是如何来打印当前的Activity类名。所以加上上面的继承自BaseAcitivty的方法,还有其他2种方法:

1). 通过Android studio的控制台的adb命令来打印Activity信息
这个主要是利用的adb命令去打印当前的Activity的信息,包括栈名,栈内Activity的信息,类名,所在线程名等信息。优点是信息全面,缺点是每次切换一个界面,就得重新输入一次命令。
命令如下

adb shell dumpsys activity activities 

当然在输入这个命令的时候,首先你得找到你的adb所在的目录。
比如下面这个:

cd D:\android-sdk\platform-tools

嫌每次打印麻烦的,可以直接配置到环境变量中去,在path路径后,添加你的platform-tools的路径名。
打印信息如下:

ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
  Main stack:
  * TaskRecord{42955d30 #2 A com.miui.home U 0}
    numActivities=1 rootWasReset=true userId=0
    affinity=com.miui.home
    intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10600000 cmp=com.miui.home/.launcher.Launcher}
    realActivity=com.miui.home/.launcher.Launcher
    askedCompatMode=false
    lastThumbnail=null lastDescription=null
    lastActiveTime=710219844 (inactive for 1158s)
    ignoreFromRecent=false
    * Hist #0: ActivityRecord{42707110 u0 com.miui.home/.launcher.Launcher}
        packageName=com.miui.home processName=com.miui.home
        launchedFromUid=0 userId=0
        app=ProcessRecord{42907f38 13729:com.miui.home/u0a10035}
        Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.miui.home/.launcher.Launcher }
        frontOfTask=true task=TaskRecord{42955d30 #2 A com.miui.home U 0}
        taskAffinity=com.miui.home
        realActivity=com.miui.home/.launcher.Launcher
        baseDir=/system/app/MiuiHome.apk
        dataDir=/data/user/0/com.miui.home
        stateNotNeeded=true componentSpecified=false isHomeActivity=true
        compat={240dpi} labelRes=0x7f0c0004 icon=0x7f0200cd theme=0x7f0f0000
        config={1.0 ?mcc?mnc zh_CN ldltr sw360dp w360dp h614dp 240dpi nrml long port finger -keyb/v/h dpad/v skin=/system/framework/framework-res.apk s.5 themeChanged=0 themeChangedFlags=0}
        launchFailed=false haveState=false icicle=null
        state=RESUMED stopped=false delayedResume=false finishing=false
        keysPaused=false inHistory=true visible=true sleeping=false idle=true
        fullscreen=true noDisplay=false immersive=false launchMode=2
        frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false
        thumbHolder: 42955d30 bm=null desc=null
        waitingVisible=true nowVisible=true lastVisibleTime=-22m27s145ms

  Running activities (most recent first):
    TaskRecord{42955d30 #2 A com.miui.home U 0}
      Run #0: ActivityRecord{42707110 u0 com.miui.home/.launcher.Launcher}

  mResumedActivity: ActivityRecord{42707110 u0 com.miui.home/.launcher.Launcher}
  mFocusedActivity: ActivityRecord{42707110 u0 com.miui.home/.launcher.Launcher}
  mLastPausedActivity: ActivityRecord{43859658 u0 com.kingroot.kinguser/.activitys.SuNotifyActivity}
  mSleepTimeout: false
  mDismissKeyguardOnNextActivity: false

  Recent tasks:
  * Recent #0: TaskRecord{42955d30 #2 A com.miui.home U 0}
    numActivities=1 rootWasReset=true userId=0
    affinity=com.miui.home
    intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10600000 cmp=com.miui.home/.launcher.Launcher}
    realActivity=com.miui.home/.launcher.Launcher
    askedCompatMode=false
    lastThumbnail=null lastDescription=null
    lastActiveTime=710219844 (inactive for 1158s)
    ignoreFromRecent=false
  * Recent #1: TaskRecord{46bdfd88 #97 A com.kingroot.kinguser U 0}
    affinity=com.kingroot.kinguser
    intent={flg=0x10800000 cmp=com.kingroot.kinguser/.activitys.SuNotifyActivity}
    realActivity=com.kingroot.kinguser/.activitys.SuNotifyActivity
    askedCompatMode=false
    lastThumbnail=null lastDescription=null
    lastActiveTime=710219836 (inactive for 1158s)
    ignoreFromRecent=false
  * Recent #2: TaskRecord{428d13e8 #96 A com.example.testactivityservice U 0}
    affinity=com.example.testactivityservice
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.testactivityservice/.MainActivity}
    realActivity=com.example.testactivityservice/.MainActivity
    askedCompatMode=false
    lastThumbnail=null lastDescription=null
    lastActiveTime=710030246 (inactive for 1348s)
    ignoreFromRecent=false
  * Recent #3: TaskRecord{42a48de0 #95 A com.lancoo.platform U 0}
    numActivities=0 rootWasReset=true userId=0
    affinity=com.lancoo.platform
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.lancoo.platform/.activity.SplashActivity}
    realActivity=com.lancoo.platform/.activity.SplashActivity
    askedCompatMode=false
    lastThumbnail=null lastDescription=null
    lastActiveTime=709770805 (inactive for 1607s)
    ignoreFromRecent=false
  * Recent #4: TaskRecord{42831158 #90 A com.android.settings U 0}
    affinity=com.android.settings
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10008000 cmp=com.android.settings/.Settings$DevelopmentSettingsActivity}
    origActivity=com.android.settings/.DevelopmentSettings
    realActivity=com.android.settings/.Settings$DevelopmentSettingsActivity
    askedCompatMode=false
    lastThumbnail=null lastDescription=null
    lastActiveTime=709248629 (inactive for 2129s)
    ignoreFromRecent=false
  * Recent #5: TaskRecord{42d06290 #27 A com.example.administrator.myapplication U 0}
    numActivities=0 rootWasReset=true userId=0
    affinity=com.example.administrator.myapplication
    intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.administrator.myapplication/.MainActivity}
    realActivity=com.example.administrator.myapplication/.MainActivity
    askedCompatMode=false
    lastThumbnail=null lastDescription=null
    lastActiveTime=504353483 (inactive for 207024s)
    ignoreFromRecent=false

  mCurTask: 97

是的,看到这么多信息头都是大的。你可以通过下面的命令来搜索你想要的信息:

adb shell dumpsys activity activities | findstr "应用包名" 

但是输入之后,信息还是太多,我只关心的是Activity名!!!
所以我建议下面的这个方法,优点是简单,是单独的一个app,点击开启打印activity的类名信息的服务,不想要是,点击stop service即可。缺点是信息没有上面的全面,但是这就够了。

2)通过服务的方式打印Activity类名
主要用到的是下面的方法。

 ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        RunningTaskInfo info = manager.getRunningTasks(1).get(0);
    String shortClassName = info.topActivity.getShortClassName();    //类名
        String className = info.topActivity.getClassName();              //完整类名
        String packageName = info.topActivity.getPackageName();          //包名

首先我们得建立这么一个服务,方便自动打印。代码如下:

import android.app.ActivityManager;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;

import java.util.List;

/**
 * Created by gongwq on 2017/6/17 0017.
 */

public class MyService extends Service {
    ActivityManager activityManager = null;
    Handler handler = new Handler();
    String activityName = null;
    String activity_last = null;
    Runnable runnable = new Runnable() {

        @Override
        public void run() {
            List<ActivityManager.RunningTaskInfo> runningTaskInfo = activityManager.getRunningTasks(1);
            activityName = (runningTaskInfo.get(0).topActivity).toString();
            if (!(activityName.equals(activity_last))) {
                Log.e("ActivityManager: ", "当前activity是---->" + activityName);
                activity_last = activityName;

            }
            handler.postDelayed(runnable, 10);
        }
    };

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        handler.postDelayed(runnable, 10);
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    }

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public void onDestroy() {
        handler.removeCallbacks(runnable);
    }
}

最后服务不要忘记在AndroidManifest进行注册服务名,此外还要添加一个权限:

<uses-permission android:name="android.permission.GET_TASKS"></uses-permission>

主Activity的代码就不贴了,就两个按钮,对应于开启和关闭服务。


点击此处,下载源码


如果对本文内容有什么好的建议,欢迎留言。当然,如果本文有帮助到你,点个赞呗!手写很累的。

Android 获取当前页面的activity和包 方法一: adb shell "dumpsys window | grep mCurrentFocus方法二: 阅读详情

相关推荐

ADB->获取当前正在显示的Fragment和Activity的ADB命令

获取当前正在显示的Fragment和Activity的ADB命令

sunshine_guo的博客 2589

adb命令查看当前运行activity

使用adb命令查看最上层activity: 方法一 : 在cmd命令中输入:adb shell dumpsys activity activities 查看 * Hist #1: ActivityRecord{76f895b u0 com.hardwaremanager/.activity.SystemInfoActivity t39} packageName=...

Framework-coder的博客 4万+

ptrade从零开始学习量化交易第166期【ptrade量化策略研究参考--三个因子挖掘思路】

三个因子挖掘思路

GJ57017_wx的博客 1246

adb 查看当前运行的activity

1.进入手机系统 adb shell 2.查看当前运行的activity dumpsys activity activities | grep -i run 3.查询结果类似这样:

OneN的博客 1万+

RI-CLPM vs CLPM:什么时候该用随机截距交叉滞后模型?

本文深入对比了交叉滞后模型(CLPM)与随机截距交叉滞后模型(RI-CLPM)的核心差异与应用场景。RI-CLPM通过分离个体间稳定特质与个体内动态波动,能更纯净地估计变量间的动态因果关系,避免CLPM可能存在的混淆。文章提供了清晰的模型选择决策框架,并辅以Mplus语法示例,帮助研究者根据变量特质稳定性与研究问题,正确选用模型以确保结论的严谨性。

weixin_29276847的博客 302

Java 开发 修改【冒险岛 079 私服】完整学习流程

第 1-2 天:环境搭建 + 运行原版 079 服务端,能正常登录游戏;第 3-4 天:纯配置文件修改,掌握倍率、属性、怪物、道具的修改,改出第一个「百倍经验私服」;第 5-10 天:Java 代码基础修改,掌握 Player/Skill/Monster 核心类的修改,实现技能无冷却、一刀秒怪、升级满属性;第 11-20 天:Java 代码进阶修改,掌握业务逻辑修改,实现死亡不掉经验、自动捡物、装备强化无失败;第 21-30 天。

萧曳丶 3888

2024年Android最新Android快速获取当前Activity类名的三种方法,阿里四面多久出结果

(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总)面试成功其实是必然的,因为我做足了充分的准备工作,包括刷题啊,看一些Android核心的知识点,看一些面试的博客吸取大家面试的一些经验,

2401_84520026的博客 1252

手把手教你理解特斯拉Model 3的域控制器架构:RBCM如何成为“多面手”?

本文深入解析特斯拉Model 3的域控制器架构,重点介绍右车身域控制器(RBCM)如何整合车身电子系统功能。RBCM作为多任务处理中枢,管理空调系统、尾部电气设备和超声波雷达等关键功能,展现了特斯拉在汽车电子架构上的创新设计。文章详细探讨了RBCM的硬件架构、功能版图及信号网络,揭示其如何通过高性能MCU和智能开关技术实现功能集中与效率提升。

weixin_30919429的博客 380

2024年Android快速获取当前Activity类名的三种方法(1),2024年最新mysql的索引面试

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2401_84544752的博客 914

SoC验证新思路:除了UVM仿真,你还可以试试Cadence JasperGold的形式化验证

本文深入探讨了Cadence JasperGold形式化验证在SoC设计中的创新应用,对比传统UVM仿真验证,详细解析了其数学穷尽性验证优势。通过实战案例展示了JasperGold在总线协议、时钟域交叉等关键场景的验证方法,并提供了混合验证流程设计与效能优化方案,帮助工程师提升验证效率30%以上。

weixin_30566063的博客 120

基于知识图谱的农作物病虫害问答系统设计与实现

基于规则的问题分类是自问答系统诞生以来就一直存在的方式,主要代表就是众多的专家系统,构建专家系统采用的是规则分类器,优点是能够对特定领域、特征明显的问题进行高效精准问答,但是。,在问答系统中,问题以语音及文本字符等自然语言形式输入,利用问答系统的内部的逻辑处理模块,通过自然语言处理技术获得输入问句的详细语义信息,再经过知识检索、置信分析等步骤,自然语言处理中,用于文本分类任务的机器学习方式有两种,一种用传统的机器学习,如 NBC、SVM 等,另一种采用深度学习,如 CNN 和 RNN 等。

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 2166

获取当前 Activity 的包名和类名

获取当前 Activity 的包名和类名

未来很长,但我会努力的走下去。 4798

Vue3 - Vite运行打包时Uncaught ReferenceError: process is not defined(解决vue3+vite报错process is not defined)

vue3,vite,vue3+vite报错,process,UncaughtReferenceError:processisnotdefined,浏览器控制台报错processisnotdefined解决方法,vue3如何解决报错,vite报错怎么办,前端打包UncaughtReferenceError:processisnotdefined,npmrunbuild打包报错,vite打包时出现错误,vue3打包运行找不到process,热更新会报错UncaughtRefer

🏆 前端领域优质创作者 7737

Android快速获取当前Activity类名

Android快速获取当前Activity类名

唐诺 2914

2026年AI视频生成大模型全景指南:国内外主流工具深度对比与选型建议

AI视频生成技术在2025年至2026年间取得了突破性进展,从"能用"进化到"好用",商业化应用加速落地。中美双轨竞争格局基本成型,国内模型在技术追赶和本土化体验方面展现出强劲竞争力。对于用户而言,选择合适的AI视频生成工具需要综合考虑技术性能、使用门槛、成本预算和具体需求。零基础新手推荐海艺AI、通义万相等低门槛工具;进阶创作者可根据需求选择可灵AI、即梦AI、海艺AI等;专业开发者和企业用户可考虑智谱清影的开源能力或可灵AI的商业化服务。

nmdbbzcl的博客 2839

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android快速定位当前页面的Activity

Android快速定位当前页面的Activity

luguangxu68的专栏 2043

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

安卓通过Application获取当前Activity的实例(程序中不推荐保存Activity的实例)

在应用开发过程中,我们经常遇到在Module与App的交互,如果在Module里收到一条消息或指令,需要App程序中弹出全局的dialog,往往通过广播的方式,交由App中当前显示的Activity来实现,但是项目过大,尤其对于代码量庞大,人员混杂的项目,没有一个BaseActivity,无法获取到当前的Activity,实现就比较困难,通过网上学习,找到了一种获取Activity对象的实例的方法

即时通讯新姿势 9920

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android通过adb shell命令查看当前与用户交互的前台Activity

 Android通过adb shell命令查看当前与用户交互的前台Activity 前言   好久没有写点实战类型的博客了,最近一直都在捣鼓源码分析的,是时候来点实战类型的博客了。在Android的实际开发或者项目支持的时候,不知道小伙们有没有遇到过这种情况需要定位到某一个界面的Activity信息,虽然接着Android的IDE工具可以做到,但是有时候我们希望能有更快的方法能定位到这个界面信息,这个时候adb shell命令的强大就体现出来了。来我们实操一把! 注意:本次实际操作是基于Android

IT先森 9360

Android开发必备:adb命令快速获取当前屏幕Activity全解析

在Android应用开发与测试中,理解Activity作为应用界面的基本组成单元至关重要。Activity是Android四大组件之一,负责管理用户界面和交互。其生命周期状态(如Resumed)直接决定了界面的可见性与可操作性。通过adb(Android调试桥)工具与系统服务通信,开发者可以深入洞察应用运行时的底层状态,这对于调试页面跳转、编写自动化测试脚本以及进行应用行为分析具有极高的技术价值。在自动化测试、性能监控和逆向分析等应用场景中,快速准确地获取前台Activity信息是提升效率的关键。本文聚焦于

weixin_33314040的博客 349

android 利用一条 adb命令行 秒速找到当前显示界面的Activity类名

其实你去百度 查找“找到显示的Activity类名”可以得到很多结果,但百度的这些方法都需要两三个步骤,感觉挺麻烦的,于是自己查了一下adb命令行,发现 只需要一条命令行就可以解决问题。

frained的专栏 9217

Android 获取当前屏幕Activity

开发过程中可能会遇到的非自己项目所做的功能,快速定位到当前页面所在的项目名称及使用的activity

qq_53920340的博客 935

Android获取当前页面的Activity名

Android查看当前手机界面显示的Activity方法

fengyulinde的博客 1万+

adb 获取当前activity_Android 四大组件之Activity

前言Hi,大家好,又见面啦,上一期我们讲了如何安装AS,是不是已经有小伙伴迫不及待的创建了自己的项目并开始尝试了呢?那么这一期我们主要为大家介绍Activity。作为Android的四大组件之一,Activity占据着非常重要的作用。本文将围绕Android的生命周期、启动模式、基本配置等方面进行介绍。简介应用程序的每一个界面都是一个Activity,所以也有人称其为视图界面。从字面的意思去理解,...

weixin_39892447的博客 558
上一篇: Android中各种getRawX,getX,getWidth,getTranslationX等的区别。
下一篇: Android自定义可拖拽的悬浮按钮---DragFloatingActionButton
android_cmos
博客等级 码龄12年 177粉丝 73原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值