精华内容
下载资源
问答
  • 便于开发,测试,定位问题。方便查看日志。所有日志保存本地文件,可按日志等级保存,定期删除,文件最长可保存自定义天数,代码中写的3天时间,天 日志文件将会删除
  • -assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String, int); public static int v(...); public static int i(...); public static int w(...); public static ...
    -assumenosideeffects class android.util.Log {
       public static boolean isLoggable(java.lang.String, int);
       public static int v(...);
       public static int i(...);
       public static int w(...);
       public static int d(...);
       public static int e(...);
    }
    

    上面方式只能去除非拼接的日志,像Log.i(tag,“test”+某变量)是去不掉的,会生成StringBuilder拼接过程代码。

    另类方法:
    采用变量(LOG_DEBUG)控制日志输出,当为false时,会被判断无用代码,自然被删掉。

            release {
                minifyEnabled true
    //            shrinkResources true  //开启资源压缩
    //            zipAlignEnabled true  //开启zip对齐
                buildConfigField "boolean", "LOG_DEBUG", "false" //不显示log
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    
                ndk {
                    abiFilters "armeabi-v7a" // 'armeabi' 'x86' 'x86_64', 'mips', 'mips64',  'armeabi-v7a', 'arm64-v8a'
                }
            }
    
    public static final boolean logDebug = BuildConfig.LOG_DEBUG;
    if(Utils.logDebug)
    Log.i(tag, "load ");
    
    
    
    展开全文
  • android手机中生成日志

    千次阅读 2017-07-05 09:51:17
    android保存日志

    把这个脚本挂载到场景中;
    保存路径文件路径:内部储存设备/Android/data/包名/Files/OutLog.txt 如果设置的储存权限设为sdcard则:SDCard/Android/包名/Files/OutLog.txt
    然后可以通过文件管理工具在对应目录找到该日志,也可以扩展为上传到服务器。 
    该日志内容包括了使用UnityEngine.Debug.XXXX的信息,即在unity编辑器输出到unity控制台的信息。


    public class OutLog : MonoBehaviour
    {
    #if UNITY_ANDROID
    
        static List<string> mLines = new List<string>();
        static List<string> mWriteTxt = new List<string>();
        private string outpath;
        void Start()
        {
            //Application.persistentDataPath Unity中只有这个路径是既可以读也可以写的。
            outpath = Application.persistentDataPath + "/outLog.txt";
            //每次启动客户端删除之前保存的Log
            if (File.Exists(outpath))
            {
                File.Delete(outpath);
            }
            Application.logMessageReceived += HandleLog;
        }
    
        void Update()
        {
            if (mWriteTxt.Count > 0)
            {
                string[] temp = mWriteTxt.ToArray();
                foreach (string t in temp)
                {
                    using (StreamWriter writer = new StreamWriter(outpath, true, Encoding.UTF8))
                    {
                        writer.WriteLine(t);
                    }
                    mWriteTxt.Remove(t);
                }
            }
        }
    
        void HandleLog(string logString, string stackTrace, LogType type)
        {
            mWriteTxt.Add(logString);
            if (type == LogType.Error || type == LogType.Exception)
            {
                Log(logString);
                Log(stackTrace);
            }
        }
        
        public void Log(params object[] objs)
        {
            string text = "";
            for (int i = 0; i < objs.Length; ++i)
            {
                if (i == 0)
                {
                    text += objs[i].ToString();
                }
                else
                {
                    text += ", " + objs[i];
                }
            }
            if (Application.isPlaying)
            {
                if (mLines.Count > 20)
                {
                    mLines.RemoveAt(0);
                }
                mLines.Add(text);
            }
        }
    #endif
    }
    



    展开全文
  • 便于开发,测试,定位问题。方便查看日志。所有日志保存本地文件,可按日志等级保存,定期删除,文件最长可保存自定义天数,代码中写的3天时间,天 日志文件将会删除
  • Android手机上显示闪退崩溃信息,直接分享给相关开发人员! 再也不用担心测试妹妹给你重现怎样操作才能触发闪退崩溃的尴尬! 再也不用担心产品给你说哪儿哪儿会闪退崩溃,但是又不能场景还原的无奈! 再也不用担心...

    SpiderMan

    SpiderMan能为您做的事:
    1. 在Android手机上显示闪退崩溃信息,直接分享给相关开发人员!
    2. 再也不用担心测试妹妹给你重现怎样操作才能触发闪退崩溃的尴尬!
    3. 再也不用担心产品给你说哪儿哪儿会闪退崩溃,但是又不能场景还原的无奈!
    4. 再也不用担心某些国产Rom禁止异常log输出!
    5. 再也不用担心开发工具异常log信息输出时灵时不灵!
      在这里插入图片描述

    引入依赖
    1.1.4版本开始全面迁移到androidx,如不想迁移到androidx请继续使用1.1.3版本。

    def spider_man = "1.1.5"
    def spider_man_no_op = "1.1.4"
    
    方式一
    debugImplementation "com.simple:spiderman:$spider_man"
    releaseImplementation "com.simple:spiderman-no-op:$spider_man_no_op"
    
    方式二
    implementation "com.simple:spiderman:$spider_man"
    

    上面方式一debug环境有奔溃信息提示,release环境则没有,方式二都有,但是记得添加混淆。

    初始化

    放到Application的onCreate()初始化中,因为static了传入的context,并且放在其他Library初始化的前面。

    public class App extends Application {
    
        @Override
        public void onCreate() {
            super.onCreate();
            //放在其他库初始化前
            SpiderMan.init(this);
        }
    }
    
    直接显示错误页面

    调用SpiderMan.show(Throwable e)方法

    try {
          String text = null;
          text.toUpperCase();
        } catch (Exception e) {
          SpiderMan.show(e);
    }
    
    冲突
    androidx

    项目已经依赖了androidx.appcompat:appcompat包,如果产生冲突请使用下面的方式依赖。

    debugImplementation("com.simple:spiderman:$spider_man") {
            exclude group: "androidx.appcompat"
        }
        releaseImplementation("com.simple:spiderman-no-op:$spider_man") {
            exclude group: "androidx.appcompat"
        }
    
    support

    项目已经依赖了com.android.support:appcompat-v7包,如果产生冲突请使用下面的方式依赖。

    debugImplementation("com.simple:spiderman:$spider_man") {
        exclude group: "com.android.support"
    }
    
    releaseImplementation("com.simple:spiderman-no-op:$spider_man") {
        exclude group: "com.android.support"
    }
    

    混淆

    -keep class com.simple.spiderman.** { *; }
    -keepnames class com.simple.spiderman.** { *; }
    -keep public class * extends android.app.Activity
    -keep class * implements Android.os.Parcelable {
        public static final Android.os.Parcelable$Creator *;
    }
    
    # support
    -keep public class * extends android.support.annotation.** { *; }
    -keep public class * extends android.support.v4.content.FileProvider
    
    # androidx
    -keep public class * extends androidx.annotation.** { *; }
    -keep public class * extends androidx.core.content.FileProvider
    

    自定义界面样式

    SpiderMan.init(this)
             .setTheme(R.style.SpiderManTheme_Dark);
    

    SpiderMan内置了两种主题样式lightdark

    在这里插入图片描述

    所有自定义属性定义在attrs.xml

    1. smToolbar:toolbar的背景色
    2. smToolbarText:toolb title的颜色
    3. smToolbarShareText:分享文字按钮的颜色
    4. smContentBackground:toolb下方内容的背景色
    5. smIdentText:标签名字的颜色
    6. smDescText:标签描述的颜色
      具体可以参考app中的用法。

    版本迭代

    1.1.5 增加cpu-abi,versionCode,versionName输出
    1.1.4 切换到androidx
    1.1.3 change minSdkVersion to 14
    1.1.2 解决FileProvider file_path重名bug(bug来源LuckSiege/PictureSelector)
    1.1.1 新增直接显示错误页面的方法SpiderMan.show(Throwable e),优化错误类型
    1.1.0 增加自定义界面主题和国际化
    1.0.9 增加appcompat包冲突解决方案
    1.0.8 发现很多小伙伴不会代理异常收集,所以删除了异常回调
    1.0.7 删除spiderman-no-op never-crash,优化报错类型显示
    1.0.6 增加spiderman-no-op
    1.0.5 奔溃文本分享美化排版
    1.0.4 崩溃输出改为error级别
    1.0.3 增加 拷贝/分享 崩溃文字/图片信息
    1.0.2 重构,新增设备信息
    1.0.1 去除 allowBackup,label
    1.0.0 首次上传
    

    项目地址

    展开全文
  • minifyEnabled true // Enables resource shrinking, which is performed by the // Android Gradle plugin. shrinkResources true // Includes the default ProGuard rules files that are packaged with // the ...

    在APP项目的release配置中开启混淆配置,已经开启的就不用管了:

    buildTypes {

    debug {

    }

    release {

    // Enables code shrinking, obfuscation, and optimization for only

    // your project's release build type.

    minifyEnabled true

    // Enables resource shrinking, which is performed by the

    // Android Gradle plugin.

    shrinkResources true

    // Includes the default ProGuard rules files that are packaged with

    // the Android Gradle plugin. To learn more, go to the section about

    // R8 configuration files.

    proguardFiles getDefaultProguardFile(

    'proguard-android-optimize.txt'),

    'proguard-rules.pro'

    }

    ....

    在代码混淆配置proguard-rules.pro添加下面的代码:

    #-------------- 去掉所有打印 -------------

    -assumenosideeffects class android.util.Log {

    public static *** d(...);

    # public static *** e(...);

    public static *** i(...);

    public static *** v(...);

    public static *** println(...);

    public static *** w(...);

    public static *** wtf(...);

    }

    -assumenosideeffects class android.util.Log {

    public static *** d(...);

    public static *** v(...);

    }

    -assumenosideeffects class android.util.Log {

    # public static *** e(...);

    public static *** v(...);

    }

    -assumenosideeffects class android.util.Log {

    public static *** i(...);

    public static *** v(...);

    }

    -assumenosideeffects class android.util.Log {

    public static *** w(...);

    public static *** v(...);

    }

    -assumenosideeffects class java.io.PrintStream {

    public *** println(...);

    public *** print(...);

    }

    展开全文
  • Android系统的不同部分提供了四个不同log缓存区:   /dev/log/main : 主应用程序log,除了下三个外,其他用户空间log将写入此节点,包括System.out.print及System.erro.print等 /dev/log/events : 系统事件...
  • Timber: Android日志记录

    2021-01-14 21:19:20
    前言:Log日志Android项目开发中的作用非常重要,但项目越做越大,开发者会面临很多问题,比如管理各种不同的Log,不同版本控制是否输入Log等。Timber是一个轻量级的第三方库,能够帮助开发者更好的使用Android ...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼举例说明如何使用logcat...于是我反编译Settings.apk后,修改Settings\res\xml\device_info_settings.xml,删除了以下部分:复制代码修改完成后替换系统中的原文件,开始...
  • 问题一:没有Log.v和Log.d日志 解决方案: 进入拨号界面输入:##2846579## 依次选择:后台设置—LOG设置—AP 日志 重新启动手机 问题二:闪退重启清空Log日志 方式一 : 错误出现后,迅速拔掉USB线 【偶尔有用】 ...
  • android 错误日志的收集 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,谢谢您。]
  • 因为软件是在机器上跑的,不是在手机上跑的,所以就需要生成日志文件来记录一些比较重要的操作或者状态。 首先用到的是两个相关的工具类: LocalLog.java import android.annotation.SuppressLint; import java....
  • 曾经做混淆打包时,为了APP安全,需要去掉代码里的Log日志。网上好多都是说自定义一个Log工具类,设置个true、fale开关来控制的方案。但是,有个问题,如果代码被反编译了,还是可以轻松开启日志开关,定位出关键...
  • 通过消息通知用户并让用户关闭/删除它. 要使Android库远程记录未处理的异常,您可以查看:android-remote-stacktrace. >下载.jar文件. >将其添加到Java Build路径. >添加INTERNET权限:uses-permission android:name...
  • android adb 抓取手机apk的 logcat 日志
  • 华为手机打开log日志的方法[Android]

    万次阅读 2016-07-12 16:29:03
    第一种,手动通过手机打开【我使用的是这一种,是ok的,手机为荣耀6移动4G版】 进入拨号界面输入:*#*#2846579#*#* 依次选择ProjectMenu---后台设置----LOG设置---LOG开关 点击打开 第二种,通过adb打开 1....
  • LogToFile↓支持一下 Android a simple and practical to print to local phone logs Log files open sourceThe log file is written to the tools, the priority SD card -> external memory -> internal ...
  • android手机游戏分享客户端源码.rar android掌上几分钟视频应用源码.rar android条码扫描程序源码.rar android落花效果+字体渐变的Demo源码.rar android高仿QQ的即时通讯(附带服务端).rar listview 滑动删除(具体...
  • 文件扩展名: .log log意即日志,通常是系统或者某些软件对已完成的某种处理的记录,以便将来做为参考,它并没有固定的格式,通常是文本文件,可以用记事本打开以查看内容,当然很可能是其它格式,直接打开就是乱码。...
  • Unity 安卓日志

    千次阅读 2018-12-25 21:49:14
    用Unity开发AR,打包成Android工程,然后再集成到主Android工程里 .max转fbx 创建场景 http://gad.qq.com/article/detail/34681 保存场景:E:\Users\LENOVO\Unity\New Unity Project\A...
  • 最新消息,目前一加官方已经发布了“Android 10.0公测版”H2OS For OnePlus7/7Pro第一版更新的公告,这次一加带来了一加7系列手机的基于安卓10.0的氢OS系统更新。【更新日志】系统•更新至Android 10版本•全新的UI...
  • android查看app日志的一个技能

    万次阅读 2017-05-04 10:13:06
    android开发时,我们在工作台上可以看到logcat日志,但是如果测试的同事跑出来bug了,但有全局捕获异常,也没有接三放的bug统计工具,我们怎么查看bug日志呢? 其实app运行在手机上logcat也一样保存了日志手机上的...
  • 一、使用安卓日志工具Log Android日志工具Log 5个方法供我们打印日志,同时对应5种日志级别 Log.v():用于打印最为繁琐、意义最小的日志信息.对应级别verbose Log.d():用于打印一些调试...
  • 获取Android蓝牙HCI日志

    千次阅读 2021-04-14 10:01:49
    最后, 抓到的蓝牙包在我手机里越来越大, 我暂时是不想折腾如何删除手机上的HCI日志文件了. 开发者模式 在手机安卓版本号那边点击5下就可以开启, 网上资料挺多的, 都差不多, 可以看这篇文章. 开启HCI日志 在开
  • Android 系统日志写入文件

    千次阅读 2018-07-04 20:04:25
    目录介绍 1.业务需求 2.目前有那些做法及问题 3.自定义log工具类,一边打印日志一边写入文件 ...4.在application开启线程池进行日志打印 ...5.写一个service将系统日志写到...要求将app的系统日志都写入到指定的文...
  • Android应用开发过程中,通过Log类输出日志是一种很重要的调试手段。 大家对于Log类的使用,一般会形成几点共识: 在Debug模式下打印日志,在Release模式下不打印日志 避免滥用Log类进行输出日志。因为这样可能...
  • Android实时抓取日志,生成文件

    千次阅读 2017-01-06 15:35:38
    * 判断sdcard上的日志文件是否可以删除 * * @param createDateStr * @return */ public boolean canDeleteSDLog(String createDateStr) { boolean canDel = false; Calendar calendar = Calendar....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,894
精华内容 7,157
关键字:

安卓手机删除日志