分类: [Android]

Android ANR log trace日志文件分析

Trace文件怎么获取? traces.txt只保留最后一次ANR的信息,Android系统有个DropBox功能功能,它能记录系统出现的crash错误.因此保留有发生过的ANR的信息.(log路径:/data/system/dropbox) 获取系统crash log: adb shell dumpsys dropbox –print >>log.txt 系统生成的Trace文件保存在data/anr,可以用过命令adb pull data/anr/取出 Trace文件怎么生成的? 当APP(包括系统APP和用户APP)进程出现ANR、应用响应慢或WatchDog的监视没有得到回馈时,系统会dump此时的top进程,进程中Thread的运行状态就都dump到这个Trace文件中了. 导 ......

Android Theme和解决启动黑屏

1.修改AndroidManifest.xml 设置App的全局Theme或者Activity的界面Theme <application android:allowBackup="true" android:icon="@drawable/ipod_icon" android:label="@string/app_name" android:launchMode="singleTask"> <!-- iPod主界面 --> <activity android:name="com.apical.apicalipod.IPodMainActivity"   <!-- 使用上面定义的样式 mythou--> android:theme="@style/Theme.AppStartLoad" android:label="@string/app_name" > <intent-filter& ......

Android-网络图片下载工具类-三级缓存

一、前言: 之前写过一个简单的网络图片读取工具,读取网络图片,在Android应用中经常可见,在ListView、GridView这些控件中尤其可见。而为了提高用户体验,这些控件图片的读取,一般都是采用异步加载的方式,而使用缓存则是必不可少的环节。   现在网络上已经出现了很多功能丰富、使用简单的图片下载框架,例如universalimageloader,使用只需要初始化并且传入参数即可。这里我打算自己实现一个功能简单的图片下载工具类,采取了内存缓存+磁盘缓存+网络获取的三级缓存方式。 二、思路: 三级缓存,在网上查阅过很多资料,个人所知 ......

Android权限大全

1.android.permission.WRITE_USER_DICTIONARY  允许应用程序向用户词典中写入新词 2.android.permission.WRITE_SYNC_SETTINGS  写入Google在线同步设置 3.android.permission.WRITE_SOCIAL_STREAM  读取用户的社交信息流 4.android.permission.WRITE_SMS  允许程序写短信 5.android.permission.WRITE_SETTINGS  允许程序读取或写入系统设置 6.android.permission.WRITE_SECURE_SETTINGS  允许应用程序读取或写入安全系统设置 7.android.permission.WRITE_PROFILE  允许程序写入个人资料数据 8.com.android.br ......

Android 15个流行框架

1. 缓存 DiskLruCache    Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader  一个强大的加载,缓存,展示图片的库 Picasso 一个强大的图片下载与缓存的库 Fresco  一个用于管理图像和他们使用的内存的库 Glide   一个图片加载和缓存的库 3. 图片处理 Picasso-transformations 一个为Picasso提供多种图片变换的库 Glide-transformations   一个为Glide提供多种图片变换的库 Android-gpuimage    基于OpenGL的Android过滤器 4. 网络请求 Android Async HTTP  Android异步HTTP库 AndroidAsync    异步Soc ......

Android 权限分类(是否需要动态申请)

在Android M 或以上,以下权限需要动态申请的意思。 permission:android.permission.WRITE_CONTACTS permission:android.permission.GET_ACCOUNTS permission:android.permission.READ_CONTACTS permission:android.permission.READ_CALL_LOG permission:android.permission.READ_PHONE_STATE permission:android.permission.CALL_PHONE permission:android.permission.WRITE_CALL_LOG permission:android.permission.USE_SIP permission:android.permission.PROCESS_OUTGOING_CALLS permission:com.android.voicemail. ......

Android 6.0 动态权限申请简单简洁优雅的处理方式

Android M 或以上的设备,在使用涉及隐私的安全权限时,需要动态申请,虽然不难,但写下来代码工作量也不少,而且几乎每个应用都需要用到。所以一直在探索一个要足够简单简洁优雅的处理方式,强迫症的精神指导我要拒绝一切繁琐。至于完不完美那就仁者见仁了。 一、思路: 如果在每个用到权限的地方去申请,有点繁琐,所以做法是直接在每个Activity界面显示前就把该界面所需的权限全部申请允许了,再进入正常的流程。如果有权限未被允许,开发者可以在接口中自己处理,可以直接提示并退出,或者提示权限的作用后重新发起权限申请。 ......

Application, Activity, ContentProvider启动顺序

拓展知识:Zygote创建进程,Application启动以及Java类加载器等的相关基础 出现问题原因分析: 1.公司坚持使用eclipse集成friebase统计SDK 2.Application、ContentProvider、Activity执行顺序不够清晰 使用eclipse集成friebase统计SDK,涉及到aar转eclipse的过程中,aar中的jar存在资源ID的引用,我们的做法是在工程中新建一个aar包名对应的R文件,R中的资源变量,全部当前App中R文件的赋值,friebase集成过程中com.google.android.gms.R.string.common_google_play_services_unknown_issue 变量被FirebaseInitProviderdu的onCreate ......

Android Context 上下文 你必须知道的一切

本文大多数内容翻译自:http://www.doubleencore.com/2013/06/context/  我重新组织了下内容以及结构,建议大家尽可能看下原文。 1、Context概念 其实一直想写一篇关于Context的文章,但是又怕技术不如而误人子弟,于是参考了些资料,今天准备整理下写出来,如有不足,请指出,参考资料会在醒目地方标明。 Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源、启动一个新的Activity、获取系统服务、获取内部文件(夹)路径、创建View操作时等都需要Context的参与,可见 ......

让eclipse也支持FCM(Firebase Cloud Messaging)

接入谷歌推送(Firebase Cloud Messaging),我们知道,谷歌现在只支持Android studio了,那么如果eclipse需要使用怎么办呢?好像已经被抛弃了,只能自己弄一个库了。 1、进入FCM,创建我们的测试应用,输入包名即可,然后下载google-services.json文件 2、先看看as上怎么集成fcm,然后依赖compile 'com.google.firebase:firebase-messaging:9.6.1',编写自己的FirebaseMessagingService、FirebaseInstanceIdService,在AndroidManifest.xml中加上这两个服务。最后,运行,测试,发现会报一个错误,如下 这是什么鬼,好像我们还需 ......

关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决

如标题所述,最近被重复实例化launcher activity这个问题搞得很惨,这个问题有哪些表现呢?如下: 1. 在package installers 安装界面安装完一个应用后,直接打开app,然后进入了 Activity_1, 此时再通过此activity用startActivity(intent)的方法打开 Activity_2. 2. 然后按home键返回桌面,在桌面点击app图标进入,你觉得应该进入的是 Activity_2 ,实际上却是launcher Activity_1 . 3. 然而还没完,这时候你按 back 返回键,会发现返回到了之前打开的 Activity_2,再按返回,又出现 launcherActivity_1.也就是说系统重复实例化了A ......

android 兼容所有刘海屏的方案大全

推荐: – ios兼容iphonex刘海屏解决方案 – android 兼容所有刘海屏的方案大全 – android 兼容huawei手机刘海屏解决方案 – android 兼容vivo手机刘海屏解决方案 – android兼容oppo手机刘海屏解决方案 – android兼容小米xiaomi刘海屏解决方案 – android 关于google刘海屏的解决方案 目录: 谷歌google官方提供的解决方案 小米xiaomi官方提供的解决方案 华为huawei官方提供的解决方案 vivo官方提供的解决方案 oppo官方提供的解决方案 其它手机厂商 谷歌google官方提供的解决方案 ......

Android 拦截返回键事件的实例详解

KeyEvent类 Android.View.KeyEvent类中定义了一系列的常量和方法,用来描述Android中的按键事件。 和返回键有关的常量和方法有。 KeyEvent.KEYCODE_BACK: 表示key类型为返回键 KeyEvent.ACTION_DOWN:表示事件为按下key,如果一直按住不放,则会不停产生此事件。 KeyEvent.ACTION_UP:表示事件为为放开key,一次点击key过程只会调用一次。 public final int getKeyCode():获取此事件对应的key类型。 public final int getAction():获取此事件对应的事件类型 Activity中拦截返回键 在Activity的派生类中可以通过重写onKeyDown和o ......

Android自动化测试-Monkey命令详解

四大类—— 常用选项、事件选项、约束选项、调试选项 1、常用选项 –help:打印帮助信息 -v:指定打印信息的详细级别,一个-v增加一个级别 ,默认级别为 0 。用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别。 日志级别 Level 0 缺省值,仅提供启动提示、测试完成和最终结果等少量信息 日志级别 Level 1 提供较为详细的日志,包括每个发送到Activity的事件信息 日志级别 Level 2 最详细的日志,包括了测试中选中/未选中的Activity信息 2、事件选项 -s:指定产生随机事件种子值,相同的种子值产生相同的事件 ......

常用app

apkpure 这个是用来下载第三方应用的,无需Google play 即可下载 play 商店里的各种应用 当前Activity 该款软件可显示最前台页面所在应用的包名及Activity 还有一个脚本来获取: #!/bin/sh oldActvity="" displayName="" currentActivity=`adb shell dumpsys window windows | grep -E 'mCurrentFocus'` while true do if [[ $oldActvity != $currentActivity && $currentActivity != *"=null"* ]]; then displayName=${currentActivity##* } displayName=${displayName%%\}*} ......

Android-aapt/dx命令编译打包APK

命令工具 AndroidSDK/build-tools/apixx/aapt.exe AndroidSDK/build-tools/apixx/aapt/dx.bat JDK/bin/javac.exe 注: 以下命令中[]都表示可选 一.aapt命令 功能: 1.编译res目录xml文件 2.编译AndroidManifest.xml 3.生成R.java 4.生成Resources.arsc 1.查看APK包文件列表 aapt l[ist] [-v] [-a] file.{zip,jar,apk} List contents of Zip-compatible archive 这个命令没什么用, .APK和.zip文件没什么区别,可以直接使用压缩解压工具打开,增删改查文件都非常方便 2.查看编译后的xml ......

Android aapt 命令 详细解析

Android aapt 命令 详细解析 2015年10月23日 20:11:55 阅读数:7455 aapt即 Android Asset Packaging Tool。该工具在SDK/tools目录下,如果你没有设置环境变量,那需要进入该目录下才能运行aapt命令,如果设置了环境变量则可以在任何目录下运行aapt命令了。 1、列出压缩文件目录 aapt l[ist] [-v] [-a] file.{zip,jar,apk} 参数: -v:会以table的形式输出目录,table的表目有:Length、Method、Size、Ratio、Date、Time、CRC-32、Name。其中Method表示压缩形式,有Deflate和Stored两种,即该Zip目录采用的算法是压缩模式 ......

abd-logcat, main、system、radio、events

在Android中不同的log写到不同的设备中,共有/dev/log/system, /dev/log/main, /dev/log/radion, /dev/log/events四中类型。其中默认Log.v等写入/dev/log/main中。Slog写入/dev/log/system中。 我们在使用logcat 抓去日至的时候, 可以指定buffer,来请求不同的环形缓冲区 (‘main’, ‘system’, ‘radio’, ‘events’,默认为”-b main -b system”),因为Android日志系统为日志消息保持了多个循环缓冲区,而且不是所有的消息都被发送到默认缓冲区,要想查看这些附加的缓冲区 ......

Ant编译

ANT编译流程分析 https://blog.csdn.net/kevin_nazgul/article/details/48767101 自己动手生成Android Apk https://blog.csdn.net/chenkai19920410/article/details/60589100 Android 热修复三部曲之基本的Ant打包脚本 https://blog.csdn.net/lisdye2/article/details/52049857 android ant多渠道混淆打包 https://blog.csdn.net/junfeng120125/article/details/9234651 android Ant 批量多渠道打包 总结! https://blog.csdn.net/tenggangren/article/details/8051937 ant打多渠道包混淆签名   https://blog.csdn.net/wangli ......