Android打印堆栈的方法

打印调用堆栈可以直接把问题发生时的函数调用关系打出来,非常有利于理解函数调用关系,这个对源代码逻辑研究是很有帮助的。 Java new Throwable().printStackTrace(); 很简单。 Native C++ 在mk中要添加下面的库: LOCAL_SHARED...

2018-06-29 15:10:02

阅读数 886

评论数 0

Log.isLoggable的使用

本文将介绍怎么打印出framework源码中的log。 在Android源码中,经常可以看到如下的log代码: //AudioService.java private static final String TAG = "AudioService&a...

2018-06-04 19:06:47

阅读数 488

评论数 0

ProtoBuf入门

最近在入Android O的坑。看到ProtoBuf了解一下。 Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。你可以用定义自己ProtoBuf的数据结构,用ProtoBuf编译...

2018-03-24 17:34:51

阅读数 147

评论数 0

在Ubuntu下安装Android Studio并导入源码

1.下载Ubuntu版本Android Studio 到官网下载,选择Ubuntu版本 2.安装 把官网下载的zip包放到ubuntu下。 在终端使用下面命令解压zip包到/usr/local/路径下: unzip -d /usr/local/ ...

2018-03-22 19:48:20

阅读数 838

评论数 0

系统强制横屏、竖屏

Activity横竖屏修改属性android:screenOrientation即可属性有下述可选值: 1. unspecified:默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向 2. landscape:横屏显示 3. portrait:竖...

2017-09-29 10:38:39

阅读数 628

评论数 0

获取当前栈顶的Activity

如何获得当前栈顶的Activity?总的步骤是: 1. 得到当前运行环境(context)的Activity管理器; 2. 通过Activity管理器得到当前的任务栈信息; 3. 从任务栈中获得栈顶的Activity的名称。ActivityManager manager = (Acti...

2017-07-21 10:48:37

阅读数 229

评论数 0

添加系统属性:Settings.system和SystemProperties

介绍一、使用 SystemProperties.get这中方法在framework里面经常见到。特别属性: 如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。 如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/propert...

2017-05-09 15:23:28

阅读数 1983

评论数 0

Android使用@hide的API

今天早上想修改MediaPlaybackService.java(/packages/apps/Music)的代码。将AudioManager.STREAM_MUSIC改成AudioManager.STREAM_TTS。发现AudioSystem.java(/frameworks/base.med...

2017-01-05 11:09:14

阅读数 274

评论数 0

mk文件介绍

makefile(mk)文件,一旦写好,只需一个make命令,整个工程完全自动编译。1、LOCAL_PATH := $(call my-dir),一个Android.mk file首先必须定义好LOCAL_PATH变量。它用于在开发树中查找源文件。在这个例子中,宏函数‘my-dir’, 由编译系统...

2016-11-18 15:21:32

阅读数 5074

评论数 0

Android官方文档之Services

官方原文链接。本文将介绍Services的定义、创建、启动、绑定、前台Service等相关内容。Service是Android中一个类,它是Android四大组件之一,使用Service可以在后台执行长时间的操作,Service并不与用户产生UI交互。其他的应用组件可以启动Service,即便用户...

2016-05-30 21:19:48

阅读数 3151

评论数 0

自定义View(二)

先贴一下自定义View(一)的链接,里面讲了一些自定义View基础的内容。 这篇我将实现一个继承View的例子。点击TxetView的内容将随机产生四位随机数。 自定义View的步骤: 自定义View的属性在View的构造方法中获得我们的自定义属性重写onMesure() 重写onDraw() ...

2016-04-18 11:05:57

阅读数 175

评论数 0

Handler:Android异步消息处理机制完全解析

我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中...

2016-04-11 11:10:04

阅读数 245

评论数 0

自定义View(一)

很多时候系统自带的View满足不了设计的要求,就需要自定义View控件。 自定义View的方法: 1.继承View 2.继承特定的View(如Button) 3.继承ViewGroup 4.继承特定的ViewGroup(如LinearLayout)

2016-04-03 20:16:57

阅读数 286

评论数 0

Android Studio的学习

这几天更加深入学习了下Android Studio。俗话说磨刀不误砍柴工,熟悉开发软件能让我们加快开发的速度。下面总结一下。 alt+空格 自动修复错误 Ctrl+Shift+空格 代码提示 Ctrl+X 剪切光标所在行代码 Ctrl+O 快捷覆写方法

2016-03-03 12:11:36

阅读数 291

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭