android
文章平均质量分 84
明潮
这个作者很懒,什么都没留下…
展开
-
Android Notification常见样式总结
代码中用的自定义常量?123456789class="hljs java"> public staticfinal int TYPE_Normal = 1; publicstatic final int TYPE_Progress = 2; publicstatic fi转载 2017-10-27 11:34:14 · 726 阅读 · 0 评论 -
C语言实现hashmap,安卓系统AOSP源码
HashMap.h#ifndef __HASHMAP_H#define __HASHMAP_H#include "ESR_ReturnCode.h"#include "ESR_SharedPrefix.h"#include "ptypes.h"#include typedef struct HashMap_t{ ESR_ReturnCode(*put)(str原创 2017-11-07 20:16:44 · 770 阅读 · 0 评论 -
adb shell 启动,停止 android 应用程序
adb shell 启动,停止 android 应用程序本文原创,转载请注明作者和出处!一、adb启动 应用程序(1)查看app包名:进入android操作系统adb shell在root@android:/ # 后边,输入cd data/data然后输入ls这样就能看见android系统上安装的安装包 包名:例如:cn.com.co转载 2017-10-23 17:52:57 · 2090 阅读 · 0 评论 -
adb logcat的技巧
adb logcat 清空缓存adb logcat -cUsage: logcat [options] [filterspecs]options include: -s Set default filter to silent. Like specifying filterspec '*:S' -f Lo原创 2017-10-24 09:32:29 · 299 阅读 · 0 评论 -
string与十六进制byte互转
[java] view plain copyprint?/** * 字符串转换成十六进制字符串 * @param String str 待转换的ASCII字符串 * @return String 每个Byte之间空格分隔,如: [61 6C 6B] */ public static String str2HexStr(String str转载 2017-10-24 19:18:34 · 4394 阅读 · 0 评论 -
byte数组的转化
java中对byte数组的不同定义,粗略整理的一下:一个字节(byte)=8位(bit),“byte数组”里面全部是“byte”,即每一个byte都可以用二进制、十六进制、十进制来表示。首先八位二进制数0000 0000 ~1111 1111,一共可以表示2^8=256位数,如果想要表示无符号整数,可以表示0~255。如果想要表示有符号整数,就要将最前面转载 2017-10-26 11:11:57 · 11237 阅读 · 3 评论 -
InputStream.read(byte[] b,int off,int len)
public int read(byte[] b, int off, int len) throws IOException将输入流中最多 len 个数据字节读入字节数组。尝试读取多达 len 字节,但可能读取较少数量。以整数形式返回实际读取的字节数。在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻转载 2017-10-26 15:08:50 · 2596 阅读 · 0 评论 -
理解Native Crash处理流程
本文是基于Android 7.0源码,来分析Native Crash流程。转自 http://gityuan.com/2016/06/25/android-native-crash/一、Native Crash从系统全局来说,Crash分为Framework/App Crash, Native Crash,以及Kernel Crash。对于framework层或者app层的Cr转载 2017-11-17 14:02:33 · 6772 阅读 · 0 评论 -
NativeCrashListener,安卓系统AOSP源码
程序崩溃日志:NativeCrashListener(791): Exception dealing with reportNativeCrashListener(791): android.system.ErrnoException: read failed: EAGAIN (Try again)NativeCrashListener(791): at libcore.io.Pos原创 2017-11-17 16:36:01 · 3968 阅读 · 2 评论 -
socket的实现,安卓系统AOSP源码
bionic\libc\include\sys\socket.h#ifndef _SYS_SOCKET_H_#define _SYS_SOCKET_H_#include #include #include #include #include #include #include #include #include __BEGIN_DECLS#define sockaddr原创 2017-11-13 17:25:50 · 1290 阅读 · 0 评论 -
如何分析安卓系统日志
高通或者MTK的Android系统日志文件大致相当,但是log文件名称会有所不同。手机的Android log主要包含 main_log、events_log、kernel_log三类,其它还有data/anr 目录下的traces/tombstones等等,分析死机、重启还是很重要的。main_log记录手机android上层app以及framework相关活动的log,比如你写原创 2017-11-17 19:18:55 · 17846 阅读 · 0 评论 -
JNI原理
引言:分析Android源码6.0的过程,一定离不开Java与C/C++代码直接的来回跳转,那么就很有必要掌握JNI,这是链接Java层和Native层的桥梁,本文涉及相关源码:frameworks/base/core/jni/AndroidRuntime.cpplibcore/luni/src/main/java/java/lang/System.javalibcore/luni/sr转载 2017-11-06 14:05:10 · 212 阅读 · 0 评论 -
在Eclipse上打包并使用Proguard工具混淆jar包
Android jar包的打包混淆方法一段时间不用就容易忘,偷懒转载,用时补补。——古月士三如何打包这里我以eclipse 打包为示例,如果有朋友是用Andorid Studio开发的话。恕我有点out了。选择你的项目,右键–>Export 选择JAVA分类项–>JAR file –> Next 这里我们看到的是jar 包生成选项。这里我所需转载 2017-11-15 13:49:41 · 368 阅读 · 0 评论 -
VisualGDB安装使用
VisualGDB是目前我遇到的在Windows下开发Linux应用程序最好用的软件,它不仅可以直接在VS环境中编译Linux程序,还可以直接对Linux程序进行调试,极大的方便了Windows程序员开发Linux程序。 在发现这个软件之前,我开发Linux下的程序是在Windows下使用VS进行编辑,编写跨平台的代码,先在Windows下用VS编译、调试或者运行,如果没有什么问题转载 2017-12-08 12:10:23 · 7388 阅读 · 7 评论 -
visual studio上搭建arm交叉编译环境
前言最近使用SlickEdit进行arm9应用程序的开发,感觉代码编辑、查找、定义跳转、函数引用处查询等功能非常不好用,这可能是由于我之前都是在visual studio(vs)上进行代码的开发的原因,个人感觉作为集成开发环境,VS+VA 进行代码的开发是最方便,最好用的,所以就尝试了下,在visual studio 2013上建立一个arm的交叉编译环境,经过两天的资料查询和调试,终于编译转载 2017-12-07 17:55:07 · 18463 阅读 · 1 评论 -
Android压力测试-Monkey
一 背景1. 为什么开展压力测试 目标1:提高产品稳定性(产品稳定性是一项重要指标,据统计百分之七十用户会遇到不稳定问题,这时有的会忍受继续使用(比如QQ、微信等成熟产品),有的直接放弃(使用一些新产品),百分之五用户在遇到页面缓慢等问题会直接卸载)目标2:提高产品的留存率2. 什么时候开展压力测试 首轮功能测试后(开发提测时会有一些bug,此时若开展压力测试会误报一些转载 2017-11-16 19:29:47 · 481 阅读 · 0 评论 -
VisualGDB调试,实现VS环境下调试Android
1. 下载并安装VisualGDB, 安装完成后,在Visual Studio的目录中可以看到Android选项:2. 配置VisualGDB, 在Android -> Setup SDK/NDK location主要配置JDK,SDK,NDK,ANT路径其中,添加sdk时,需要将sdk\tools\lib\SDK Manager.exe 复制一份到转载 2017-12-10 21:34:37 · 1613 阅读 · 1 评论 -
android 集成第三方静态库的编译方法
最近为java层将一个静态库通过jni层封装成了一个动态库工他们调用,遇到了一些编译上的疑惑,所以索性将其彻底搞清楚算了,免得以后误事。 下面的图片列出了所有相关文件,可以看到引用静态库的文件是com_xxx.cpp文件,而.a文件是放在lib目录下的libHWRecog.a,而库提供出来的头文件在include下的两个.h文件。转载 2017-12-11 16:00:07 · 1843 阅读 · 0 评论 -
Wireshark手机等移动设备抓包
Wireshark手机等移动设备抓包手机、pad在访问网络时会有数据交换,请求的数据从你的手机上的无线网卡发送出去,经过运营商的各种操作后把该请求数据送到了目的地址——请求数据所在服务器的网卡,服务器经过分析,找到所要请求的数据,验证权限后认可该请求,便开始把所请求的数据打包发送到运营商,各种操作后数据包又到了你的手机无线网卡上,这时手机解包、分析协议、解析数据、呈现数据到你的所发请求的页面,转载 2017-12-20 13:51:56 · 44193 阅读 · 4 评论 -
Android导入第三方静态库.a编译成动态库.so
在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库。如果有源码的话,可以直接跟你自己的代码一去编译成动态库so,但是如果没有源码的话,你就必须在自己的动态库so里面将别人生成好的静态库导入进来一起编译了。我在编译的时候遇到了不少问题,我觉得有必要进行总结一下。下面我以一个简单的实际例子来讲解如何在动态库中导入静态库。静态库中的源代码有两个文件:stat转载 2017-12-12 11:40:53 · 8371 阅读 · 0 评论 -
在Windows下利用CYGWIN建立ARM交叉编译环境
在Windows下利用CYGWIN建立ARM交叉编译环境关键词:交叉编译环境、ARM、GCC、Cygwin、crosstool 以往,使用GCC给ARM写程序很麻烦,他的交叉编译环境是需要在Linux下运行的。而其他的很多工具又不得不在Windows下使用,于是人们不得不来回切换操作系统,很麻烦,也浪费了大量宝贵的时间。在经过总结以往的使用经验,反复试验后,现在总算解决了这一问题。转载 2017-12-12 16:09:46 · 6905 阅读 · 0 评论 -
关闭和恢复adb
import android.provider.Settings;Settings.Global.putInt(MainActivity.this.getContentResolver(),Settings.Global.ADB_ENABLED, 0);//关闭adbSettings.Global.putInt(MenuAcitivty.this.getContentResolver(),Se原创 2017-12-04 18:59:35 · 2919 阅读 · 0 评论 -
WireShark 2.4 Windows10下捕获通信数据
WIndows10系统下,安装使用WireShark 2.4,会发现无法捕获接口。需要安装win10Pcap才能正常使用。Win10Pcap下载地址:http://download.csdn.net/download/u010144805/10168217安装好之后,在安装目录Win10Pcap\x64,点击运行installer.exe,重启wireshark就会出现加载接口的界面。原创 2017-12-21 17:36:48 · 2414 阅读 · 0 评论 -
Andorid Studio NDK开发-编译OpenSSL类库
OpenSSL是一个强大的开源安全套接字层密码库,它包含了主要的密码学算法,常用的密钥和证书封装管理以及SSL协议,并提供丰富的应用程序供测试或其他目的使用。在Android上开发对于安全的需求越来越高,虽然OpenSSL出现过几次漏洞,但它仍然是在安全方面的使用最多的加密库之一。OpenSSL是一个基于c语言开发的,古老的,开源的加密库,想要在Android上使用OpenSSL必须要借助转载 2017-12-13 16:04:46 · 755 阅读 · 0 评论 -
Android.mk,安卓系统AOSP源码
学习Android.mk可以参考安卓系统源码当中的一些mk文件例如,build/core目录下的base_rules.mk和config.mkbase_rules.mkifdef base-rules-hook$(if $(base-rules-hook),)endif########################################################原创 2017-12-14 13:50:22 · 2575 阅读 · 0 评论 -
Makefile常用函数总结
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具 有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函 数的返回值可以当做变量来使用。 一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( ) 或是${ } 这里,就是函数名,make支持的函数不多。是函数的参数,参转载 2017-12-14 13:59:26 · 149 阅读 · 0 评论 -
import static的使用
首先,上简例:package com.guyue.ConfigInfo;public class ConfigInfo { public final static String PTAG = "GuYue";}在其他地方可以如下方式调用:import static com.guyue.ConfigInfo.PTAG;Log.e(PTAG,"here is a log")原创 2017-11-28 09:47:27 · 866 阅读 · 0 评论 -
NDK toolchain对应ABI
Android NDK: This NDK supports the following toolchains and target ABIs:Android NDK: aarch64-linux-android-4.9: arm64-v8aAndroid NDK: aarch64-linux-android-clang3.4: arm64-v8aAndroid N原创 2017-12-16 18:21:16 · 5182 阅读 · 0 评论 -
Native looper 分析
转自:http://blog.csdn.net/windskier/article/details/6995546Looper是android中很重要的概念,它是android application端线程间最主要的通信方式,同时它也是线程内部序列化处理的主要方式,Looper的核心其实是一个消息队列,通过不停的处理Looper消息队列中的消息来完成线程间的通信和线程内部序列化操作。任何线程想转载 2017-12-25 16:52:12 · 216 阅读 · 0 评论 -
Android中使用addr2line来分析出错信息
系统:Ubuntu12.04手机系统:Android5.0在Android的开发过程中有会有很多的bug,利用工具可以很好的帮忙我们来分析问题,特别是一些系统报错的信息中会打印出堆栈,我们可以根据这个堆栈报错信息定位是哪个文件哪行代码出的错。下面就把我使用addr2line的过程记录下来首先是在电脑上编译出一个eng版本,烧录到手机,在测试或调试的过程中出错了,查看出错信息如下:转载 2017-12-18 13:36:58 · 312 阅读 · 0 评论 -
gdb调试example
gdb在源码里面就有,路径:prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gdbGdb (可以使用完整Romcode 目录中的gdb,也可以使用自己build的gdb)下面提供的是在完整Rom code中的gdb路径:ARM64prebuilts/gcc/lin转载 2017-12-18 13:43:37 · 1783 阅读 · 0 评论 -
Fatal signal 11问题的解决方法
项目问题,目前已解决;在此记录。前些天在调试Camera模块;发现相同的代码在厂家提供的环境里边编译、就是ok的,在我们的源码树中编译,将HAL库推进去后、就会signal 11退出。一、现象[plain] view plain copyprint?F/libc ( 4250): Fatal signal 11 (SIGSEGV) at 0转载 2017-12-18 14:05:13 · 8391 阅读 · 0 评论 -
使用objdump进行Android crash 日志 分析
在Android开发的过程中,有时候需要创建一个纯linux的应用程序,当这些程序crash时,如果找不到导致crash的直接原因,问题将很难被修复。本文将介绍一种分析crash问题的方法。 1)以下是crash时串口的打印信息:[cpp] view plain copyprint?pid: 96, tid: 798, name: Playba转载 2017-12-18 14:08:10 · 2119 阅读 · 0 评论 -
connect函数崩溃
出错日志:D/dynaservice( 5061): dc_ssl_init(188): .【---------------connect函数崩溃---------------】F/libc ( 5061): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x353a32300a0d2d in tid 5061 (htfsk)D/AEE原创 2017-12-18 14:11:39 · 3261 阅读 · 1 评论 -
MTK平台CPU/GPU动态调频的实现之PerfService的源码分析
转自:http://blog.csdn.net/zhangyongfeiyong/article/details/52946781Zygote进程启动后会启动System进程,在System进程启动过程中会启动系统中的关键服务,如AMS、PMS以及这里要分析的PerfService。先看下流程图:SystemServer启动PerfService服务是通过实例化PerfServic转载 2018-01-04 16:56:55 · 2047 阅读 · 0 评论 -
Bugly的使用
Bugly为解决开发者紧急修复线上bug,而无需重新发版让用户无感知就能把问题修复的一项能力。Bugly目前采用微信Tinker的开源方案,开发者只需要集成我们提供的SDK就可以实现自动下载补丁包、合成、并应用补丁的功能,我们也提供了热更新管理后台让开发者对每个版本补丁进行管理。第一步:添加插件依赖 工程根目录下“build.gradle”文件中添加:buildscript {转载 2017-12-29 13:16:10 · 10576 阅读 · 1 评论 -
IntentDrivenTestActivity_源码学习
源码中专门针对intent测试的Activity// Copyright 2013 Google Inc. All Rights Reserved.package com.android.cts.verifier;import android.content.Intent;import android.os.Bundle;import android.os.Parcel;import原创 2018-01-05 10:13:51 · 201 阅读 · 0 评论 -
安卓“Janus”漏洞的产生原理及修复
Google在12月发布的安卓系统安全公告中披露了一个名为“Janus”安卓漏洞(漏洞编号:CVE-2017-13156)。该漏洞可以让攻击者绕过安卓系统的signature scheme V1签名机制,进而直接对App进行篡改。而且由于安卓系统的其他安全机制也是建立在签名和校验基础之上,该漏洞相当于绕过了安卓系统的整个安全机制。 一旦攻击者将植入恶意代码的仿冒的App投放到安卓商店等原创 2018-01-05 11:12:06 · 6565 阅读 · 0 评论 -
XmlSerializer_源码学习
MetricsXmlSerializerpackage com.android.compatibility.common.util;import org.xmlpull.v1.XmlSerializer;import java.io.IOException;import java.util.List;/** * Serialize Metric data from {@link原创 2018-01-05 11:27:45 · 577 阅读 · 0 评论 -
audio_quality中的工厂方法 源码学习
audiosignal工厂#ifndef CTSAUDIO_AUDIOSIGNALFACTORY_H#define CTSAUDIO_AUDIOSIGNALFACTORY_H#include #include "AudioHardware.h"#include "Buffer.h"/** * factory for creating various audio signals *原创 2018-01-05 13:46:43 · 403 阅读 · 0 评论