精华内容
下载资源
问答
  • ubuntu的实现: 新建安卓项目,选择natice c++ 在项目的AndroidManifest.xml文件中添加

    ubuntu的实现:

    新建安卓项目,选择natice c++
    在项目的AndroidManifest.xml文件中添加

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

     c++示例代码如下:

    #include <time.h>
    
    #define WRITE_LOG(s, ...) do { \
    FILE *f = fopen("/sdcard/log.txt", "a+"); \
      fprintf(f, s, __VA_ARGS__); \
      fflush(f); \
      fclose(f); \
    } while (0)
    
    
    void static print_curr_time()
    {
        time_t tt = time(NULL);//这句返回的只是一个时间cuo
        tm* t= localtime(&tt);
        WRITE_LOG("%d-%02d-%02d %02d:%02d:%02d ",
                  t->tm_year + 1900,
                  t->tm_mon + 1,
                  t->tm_mday,
                  t->tm_hour,
                  t->tm_min,
                  t->tm_sec);
        return ;
    }
    
    
    print_curr_time();
    WRITE_LOG( "hip_knee_ankle_value %f \n",hip_knee_ankle_value);

    windows的实现:

    Easyloggin++项目在Github上的开源地址:https://github.com/easylogging/easyloggingpp

    下载:easylogging++.cc和easylogging++.h文件

    csdn下载连接:https://download.csdn.net/download/wzhrsh/19662171

    配置文件my_log.conf如下:

    * GLOBAL:  
        ENABLED                 =   true  
        TO_FILE                 =   true  
        TO_STANDARD_OUTPUT      =   true  
        FORMAT                  =   "[%level | %datetime] | %msg"  
        FILENAME                =   "/sdcard/log_%datetime{%Y%M%d}.log"  
        MILLISECONDS_WIDTH      =   3  
        PERFORMANCE_TRACKING    =   false  
        MAX_LOG_FILE_SIZE       =   1048576  
        LOG_FLUSH_THRESHOLD     =   0  
          
    
          
    * DEBUG:  
        FILENAME                =   "/sdcard/debug_log_%datetime{%Y%M%d}.log"  
          
    * FATAL:  
        ENABLED                 =   false  
          
    * ERROR:  
        FILENAME                =   "/sdcard/error_log_%datetime{%Y%M%d}.log"  
          
    * VERBOSE:  
        ENABLED                 =   false

    示例代码如下:

    #define _CRT_SECURE_NO_WARNINGS
    #include "easylogging++.h"  
    
    INITIALIZE_EASYLOGGINGPP
    
    int main(int argc, char** argv)
    {
    	float sum = 0;
    	for (int i = 0; i < 200; i++) {
    		sum = sum + i;
    	}
    	el::Configurations conf("my_log.conf");
    	el::Loggers::reconfigureAllLoggers(conf);
    
    	//LOG(TRACE) << "***** trace log  *****";
    	LOG(DEBUG) <<"test_angle:"<< sum;
    	//LOG(ERROR) << "***** error log  *****";
    	//LOG(WARNING) << "***** warning log  *****";
    	//LOG(INFO) <<  sum ;
    	system("pause");
    	return 0;
    }

    参考连接:https://www.yuque.com/lengyuezuixue/kggswo/kbodn3

    展开全文
  • Android开发,如果不能插着usb,看着logcat。你会觉得少一只手一样很不方便。 但是现实中确实有这种情况,比如本人在做的hud(汽车上用的“抬头显示”)项目是通过usb线把手机上的数据投到hud设备上(这样我们就不...

    把logcat日志实时显示到电脑浏览器上,是不是很酷!


    做Android开发,如果不能插着usb,看着logcat。你会觉得少一只手一样很不方便。

    但是现实中确实有这种情况,比如本人在做的hud(汽车上用的“抬头显示”)项目是通过usb线把手机上的数据投到hud设备上(这样我们就不能用usb口连接adb查看logcat了)。首先我们想到的是把日志写文件,再把usb线插在电脑上,pull出日志,再分析日志。这效率,可想而知。。。往往我们希望可以连着手机看logcat的日志,今天我们聊聊有哪些方案,以及哪个方案更适合你。

    想了解hud的,见这里,顺便给我们公司的产品打个广告:
    车萝卜 智能车机导航 HUD抬头显示 智能语音手机支架 安全预测仪 青春版+车小蜜(灰)


    方案一(无线连接adb)

    1
    2
    3
    adb tcpip 5555 (端口号)
    adb connect 192.168.1.199 (Android设备IP地址)
    adb usb 使用回usb调试

    这种方案,就三个字:“不方便”!要经常切换。而且不稳定,经常断线,不知道原因。

    方案二RemoteLogcatViewer

    最初,当我在网上找到了这个方案,简单高兴得要哭了。

    只要手机和你的电脑在同一个局域网网段,就可以无线实时地查看手机上的logcat日志。这个方案的技术实现也比较好理解,在手机里建立websocket server(以下都用ws server代替),电脑上通过ws client连接来查看。

    而且,如果不希望修改现有项目,可以新建一个其他的项目依赖本库,然后通过配置相同的 android:sharedUserId=”” 和签名相同, 可以在新app运行时中读取所有sharedUserId相同的 log。这个feature简直是锦上添花!完美!

    但是用过之后。我遇到了三个问题:

    1. 加上sharedUserId之后,不能覆盖安装。
    2. 连接老是断开。也许,我要做app要保活?太忙了,没时间尝试。
    3. 和领导提过这个方案。他也觉得很赞,问我如果用户的手机上遇到bug,能不能实时看到他的日志。显然,这个方案不太好实现这个功能。因为server的实现在手机上。

    所以,最后我只在自己的demo里用这套方案,并且,做了一些小的修改,见我的fork RemoteLogcatViewer forked by 本喵

    方案三(今天重点要说的,灵感来源于RemoteLogcatViewer)

    Demo及代码实现见这里RemoteLogDemo

    本方案的server端可以在外网服务器上,也可以是同局域网内的一台电脑。
    配合log-clientlog-server一起使用。

    • 数据流大概是这样的logcat --> log-server --> log-client

      1. app跑着ws client,负责把自己的logcat日志发给log-server。
      2. log-server是部署在服务器上,跑着ws server,负责将app上logcat的日志,转发到log-client
      3. log-client运行在开发者的电脑上,也跑着ws client,负责查看日志。

        log-server、log-client都是nodejs来实现的。app的ws使用ok-http来实现。

    • 使用方法

      1. 先运行log-server 。如果部署在外网会比较方便,可以一直开着。
      2. 打开log-client,输入要过滤的字符串( 正则表达式过滤)。
      3. 打开app,可以像我的demo一样程序启动就连接ws-server(记得加上BuildConfig.DEBUG)。如果是release版本,最好把该功能隐藏,可以通过后门开启。

        android app中执行Log.i(TAG, System.currentTimeMillis() + "");

        log-client可以看到相应的输出
        此处输入图片的描述

    • ps:如果你没有服务器,而且想把log-server部署 在外网。可以使用leancloud的服务,有免费版本。代码见wslog。详细的使用方法,见官方文档。
    • todo list
      1. 日志写文件
    </div>
    
    展开全文
  • 安卓远程桌面

    2013-06-22 00:38:14
    Remote Desktop Client for Android 安卓远程桌面 ,类式于MSTSC的工具。PJ版的。
  • remoteLog 介绍 在开发过程中发现,有些电视设备,没有入口打开usb调试,但是又有很多奇怪bug出现,不能调试也不能开... android:name=".RemoteLog.RemoteLogProvider" android:authorities="org.Randy.RemoteLogPro
  • 安卓Log框架推荐

    2020-03-30 11:40:22
    想炫酷一些可以打开AndroidStudio的Settings然后搜索Logcat可以为不同级别的log输出设置不同的颜色。但是也会有一些不同的需求和扩展,所以就整理了一些大神们的一些开源的Log框架。 0. logger 简单,漂亮,功能...

    一般情况下,平时我们对于log的输出并没有太多的需求,只需要能够给输出,在logcat上能看,能够方便的开关debug就够了。想炫酷一些可以打开AndroidStudioSettings然后搜索Logcat可以为不同级别的log输出设置不同的颜色。但是也会有一些不同的需求和扩展,所以就整理了一些大神们的一些开源的Log框架。

    0. logger

    简单,漂亮,功能强大Android log框架。

    接入和初始化相当简单

     

    //添加依赖
    implementation 'com.orhanobut:logger:2.2.0'
    
    //代码中初始化
    Logger.addLogAdapter(new AndroidLogAdapter());
    

    使用也是非常简单,使用Logger代替原生的Log即可

     

    Logger.d("hello");
    

    支持格式化输出,可以直接输出MapSetListArray以及jsonxml

     

    Logger.d(MAP);
    Logger.d(SET);
    Logger.d(LIST);
    Logger.d(ARRAY);
    
    Logger.json(JSON_CONTENT);
    Logger.xml(XML_CONTENT);
    

    输出是这样子的

    如果要禁用/隐藏输出日志,重写AndroidLogAdapterisLoggable方法。 true将打印日志消息,false将忽略log输出。

     

    Logger.addLogAdapter(new AndroidLogAdapter() {
      @Override public boolean isLoggable(int priority, String tag) {
        return BuildConfig.DEBUG;
      }
    });
    

    更多使用方式参考github

    1. timber

    JakeWharton大神出品,一个基于原生Log类的小型可扩展的log框架。

    还有使用注解形式的调试版本log框架Hugo

    2. xLog

    简单、美观、强大、可扩展的 Android 和 Java 日志库,可同时在多个通道打印日志,如 Logcat、Console 和文件。如果你愿意,甚至可以打印到远程服务器(或其他任何地方)。

    同支持多种数据格式直接输出以及线程和调用栈信息。简单的使用XLog.d("Simple message")输出即可。

    文档相当完善,还提供了原生LogxLog迁移的方式。

    带线程信息、调用栈信息和边框的日志

    格式化后的网络 API 请求

    格式化后的网络 API 响应

    日志文件

    3. LogUtils

    更方便易用的android log,支持直接打印数据集合,如List、Set、Map、数组,还支持android系统对象Intent、Bundle打印
    支持高性能日志写入文件(基于mmap)。效果图如下:

    日志说明

    个性化设置Tag

    打印数据列表

    打印系统对象Intent

    4. Log4a

    Log4a 是一个基于 mmap, 高性能、高可用的 Android 日志收集框架。

    Log4a 使用 mmap 文件映射内存作为缓存,可以在不牺牲性能的前提下最大化的保证日志的完整性。 日志首先会写入到 mmap 文件映射内存中,基于 mmap 的特性,即使用户强杀了进程,日志文件也不会丢失,并且会在下次初始化 Log4a 的时候回写到日志文件中。

    demo中还提供了性能测试的相关数据。



    作者:MrTrying
    链接:https://www.jianshu.com/p/64b63e51fd4c
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • androidlog 方法

    2019-09-22 14:55:09
    抓trace logadb pull /data/anr/traces.txt log分析:这里每一段都是一个线程 ,当然我们还是看线程号为1的主线程了通过分析发现关键问题是这样: 搜索“DALVIK THREADS”关键词,快速定位到本应用程序的...

    //1.抓trace log
    adb pull /data/anr/traces.txt

     

     

    log分析:这里每一段都是一个线程 ,当然我们还是看线程号为1的主线程了通过分析发现关键问题是这样:

    搜索“DALVIK THREADS”关键词,快速定位到本应用程序的虚拟机信息日志

    //2.抓普通log 到文件, 将文件保存为1.bat,双击执行
    CD D:\Monkey\adb

    adb logcat -v time > D:\Monkey\录音机\logcat.txt
    pause

     

    //3.抓内核log
    CD D:\Monkey\adb
    adb root

     

    adb wait-for-device

    adb shell cat proc/kmsg  > D:\Monkey\录音机\kernel.txt

    pause

    //4.dmsg抓取


    adb shell dmesg > dmesg.txt 保存到当前目录

    说明:dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。dmesg是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等)开机信息亦保存在/var/log目录中,名称为dmesg的文件里。more /var/log/dmesg

    转载于:https://www.cnblogs.com/adamli/p/3179808.html

    展开全文
  • android远程服务

    2019-03-29 13:46:01
    概念: 在我们的app中调用另一个 app的服务,我们称之为远程服务。需要使用 AIDL进行 ·IPC·(跨进程通信)。 IPC:Inter-Process Communication,即跨进程通信 AIDL:Android Interface Definition Language,即...
  • Android6.0 Log的工作机制

    千次阅读 2017-08-07 14:21:13
    Android6.0log新机制 Android6.0后Android 日志系统做了很大的改变,但是对于应用层改变是透明的,原因是由于日志系统只是针对底层做了相应改变。之前的系统通过读写设备文件的方式记录Android系统日志,而现在...
  • Androidlog机制小结

    千次阅读 2013-10-11 16:27:11
    本文是对Androidlog机制学习的小结,内容包括对log框架的理解、写log、读loglog的驱动这几个部分。 一、 log框架 log机制包括三部分:底层驱动、读和写。关于写log,我们可以在Java文件中,或者jni层的C/C++...
  • android远程 信令服务器 'use strict' var http = require('http'); var https = require('https'); var fs = require('fs'); var express= require('express'); var serveIndex=require('serve-index'...
  • Android远程图片获取和本地缓存

    千次阅读 2014-02-11 14:37:39
    Android远程图片获取和本地缓存 对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量,对应用来说,如果处理不好这个问题,那会让用户很崩溃,不知不觉手机...
  • AndroidLog详细用法

    2012-03-29 16:48:53
    Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命令来查看和使用.   使用logcat命令 你可以用 logcat 命令来查看系统...
  • android log系统

    千次阅读 2012-06-20 16:37:01
    一、如何使用logcat命令  查看和跟踪系统日志缓冲区的命令logcat的一般用法是: [adb] logcat [] ...... 下文介绍过滤器和命令... 可以在开发机中通过远程shell的方式使用logcat命令查看日志输出: $ adb l
  • Android -- Log日志调试(android.utl.log类)

    千次阅读 2012-04-29 14:57:09
    Android调试要通过模拟器运行,或者直接USB远程连接到一部手机调试。即使在不关闭模拟进行调试时候,也要经过编译、apk打包、上传apk、运行apk的过程,时间也不短,所以应该在程序固定一次运行中,产生更多我们需要...
  • android log 调试

    2013-08-12 17:13:24
    Android调试要通过模拟器运行,或者直接USB远程连接到一部手机调试。即使在不关闭模拟进行调试时候,也要经过编译、apk打包、上传apk、运行apk的过程,时间也不短,所以应该在程序固定一次运行中,产生更多我们需要...
  • 一、问题背景 接上一篇文章 卡顿监测之真正轻量级的卡顿监测工具BlockDetectUtil(仅一个类) 这篇文章实现了一个轻量级的卡顿监测工具,通过logCat输出log的形式找出卡顿的元凶,可以很方便的在开发中使用,但...
  • Android远程数据库通信实现

    千次阅读 2013-09-14 12:43:41
    由于学院需要提交一个学年论文,正好借...目前智能终端中大部分采用了Google Android操作系统,因此,我在暑期重点研究了Android远程数据库通信的实现,并实现了一套可行的实现方案。 一、问题的引入 Android在数据存储
  • Android远程服务绑定

    千次阅读 2012-10-19 17:47:23
    通常我们会在一个acitivity中通过调用bindService来绑定一个服务,但当绑定的服务和当前的activity属于不同的进程时,这种情况属于远程服务绑定。 1.所绑定的service在本包内,但是在AndroidManifest.xml中指定...
  • android 远程连接mysql

    万次阅读 2014-04-15 23:13:57
    1. 关闭mysql服务器的防火墙。 2. 加入mysql的jdbc包。 3.ADT和SDK为16及16以下。 4.手机和mysq服务器l互相ping通。...7.mysql允许远程连接。 我的代码: package com.mayi.mysql_test; import java.sql.DriverM
  • Android 远程图片缓存

    2012-07-03 22:19:53
    大家都知道,在android应用中UI线程5秒没响应的话就会抛出无响应异常,对于远程获取大的资源来说,这种异常还是很容易就会抛出来的,那么怎么避免这种问题的产生。在android中提供两种方法来做这件事情: 启动一个...
  • 今天我们来看看android远程服务(及绑定)。为什么要使用远程服务呢,主要是因为它可以帮助我们完成进程间通信(IPC),这是一个相当重要的一门技术,当然了,在实际的开发中,本地服务才是用的最多的。下面我模拟...
  • AndroidLog日志调试(android.utl.log类)

    千次阅读 2013-10-05 15:07:24
    Android调试要通过模拟器运行,或者直接USB远程连接到一部手机调试。即使在不关闭模拟进行调试时候,也要经过编译、apk打包、上传apk、运行apk的过程,时间也不短,所以应该在程序固定一次运行中,产生更多我们需要...
  • Android 远程服务 Service

    2019-06-12 14:32:38
    1、远程服务:使用 AIDL(Android Interfice Definition Language) 安卓接口定义语言进行 IPC(Inter Process Communication)跨进程通信。 2、注意: 1.AIDL 支持数据类型:1.基本数据类型。2.String、...
  • Android 远程调试 JNI 实现

    千次阅读 2010-07-02 00:29:00
    <br />转帖:Android 远程调试 JNI 实现   标签: android test java 工程 build 2010-04-04 20:56 1. 添加Android JNI 接口到Android 代码树 1.1 假定需要被测试Jni 接口是...
  • 远程服务的接口回调Android 开发中的一些场景需要用到进程间通信,一般使用AIDL(Android Interface Definition Language)。使用AIDL绑定一个远程服务,远程服务可以被其他应用绑定,绑定后可以使用定义在AIDL接口中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,219
精华内容 11,287
关键字:

安卓远程log