自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

成长的味道

代码是程序员的朋友,虽然没有热情,但是非常忠实。

  • 博客(640)
  • 资源 (6)
  • 收藏
  • 关注

转载 Android taskAffinity属性

Activity的归属,也就是Activity应该在哪个Task中,Activity与Task的吸附关系。我们知道,一般情况下在同一个应用中,启动的Activity都在同一个Task中,它们在该Task中度过自己的生命周期,这些Activity是从一而终的好榜样。 那么为什么我们创建的Activity会进入这个Task中?它们会转到其它的Task中吗?如果转到其它的Task中,它们会到什么样的Tas

2017-04-24 14:45:18 683

转载 Android日志系统探究

Android的日志系统是Kernel层实现了若干个环形Buffer实现的。系统各个日志读写操作都是针对这几个RingBuffer来实现的。那就来一窥Kernel是怎么做的。相关源码是位于driver/staging/android/下面的logger.c和logger.h两个文件1,在整个Android日志系统的位置2,在logger.c中,入口函数s

2016-12-07 10:03:53 689 1

转载 adb打印内核调试信息dmsg和kmsg说明

Android的log信息分为内核空间和用户空间中LOG,查看用户空间(也就是app等上层的log)的log直接用logcat就可以了,如果想过滤一些信息就用adb shell “logcat | grep -E ‘log_xxx|log_aaa’”命令,这样log只会显示含有log_aaa和log_xxx的log信息了。上层的log信息大家基本都会查看,我们这里就只说用adb查看内核的log信息,

2017-12-21 10:22:42 15253 2

转载 linux两种库:动态库和静态库(共享库)说明

linux下有两种库:动态库和静态库(共享库)二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体积比较大。动态库(共享库)的代码在可执行程序运行时才载入内存,在编译过程中仅简单的引用,因此代码体积比较小。不同的应用程序如果调用相同的库,那么在内存中只需要有一份该动态库(共享库)的实例。静态库和动态库的最大区别,静态情况下,把库直接加载到程序中,而动态库链接的时

2017-12-21 10:17:11 3977

转载 Android Interpolator属性动画解析

Interpolator的用法Interpolator这个东西很难进行翻译,直译过来的话是补间器的意思,它的主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果。那么什么叫做非线性运动的动画效果呢?就是说动画改变的速率不是一成不变的,像加速运动以及减速运动都属于非线性运动。不过Interpolator并不是属性动画中新增的技术,实际上从Android 1.0版本开始就一直存在Inte

2017-12-09 15:01:42 832 1

转载 Android webview使用漏洞案例解析

现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等, 上述功能是由 Android的WebView 实现的,但是 WebView 使用过程中存在许多漏洞,容易造成用户数据泄露等等危险,而很多人往往会忽视这个问题 目录 1. 类型WebView中,主要漏洞有三类:任意代码执行漏洞 密码明文存储漏洞 域控制不严格漏洞 2. 具体分析

2017-11-23 21:56:25 1212 1

原创 java巧用软引用和弱引用避免OOM

很多人对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题。下面是本文的目录大纲:  一.了解 强引用、软引用、弱引用、虚引用的概念  二.进一步理解软引用和弱引用  三.如何利用软引用和弱引用解决OOM问题 一.了解 强引用、软引用、弱引用、虚引用的概念  在Java中,虽然不需

2017-11-20 21:19:29 722 1

转载 Android UI性能优化案例

1、概述2015年初google发布了Android性能优化典范,发了16个小视频供大家欣赏,近期google又在udacity上开了系列类的相关课程。有了上述的参考,那么本性能优化实战教程就有了坚实的基础,本系列将结合实例为大家展示如何去识别、诊断、解决Android应用开发中存在的性能问题。那么首先带来的就是大家最关注的渲染的性能优化(渲染就是把东西绘制到屏幕上)。2、 Android渲染机制大

2017-11-18 10:01:26 811 2

原创 Java并发线程池,ThreadPoolExecutor解析

Executor存在的目的是提供一种将"任务提交"与"任务如何运行"分离开来的机制。虽然只有一个方法,但是却为灵活且强大的异步任务执行框架提供了基础。它提供了一种标准的方法将任务的提交过程与执行过程解耦开来,并用Runnable来表示任务。**一、线程池**对于数据库连接,我们经常听到数据库连接池这个概念。因为建立数据库连接时非常耗时的一个操作,其中涉及到网络IO的一些操作。因此就想出把连接通过

2017-11-16 17:34:30 841

原创 AS如何引用本地jar包问题解决方案

从Eclipse转Android Studio后,很多操作都不是很清楚,就包括jar包的使用,直到昨天出现了问题,才去找原因并解决。问题是这样的:自定义的控件打成jar包了,在其他工程中调用,在运行时出现错误,提示说在xml中的自定义控件无法填充。在xml中弹出错误,说NoClassDefFoundError,进入源码发现指向的是styleable,也就是自定义属性。毫无疑问,这就是R文件的问题了。

2017-10-12 15:12:13 12047

转载 android netd的工作流程解析

一、NETD解读1.1、NETD的作用Netd是Android系统中专门负责网络管理和控制的后台daemon程序,其功能主要分三大块:设置防火墙(Firewall)、网络地址转换(NAT)、带宽控制、无线网卡软接入点(Soft Access Point)控制,网络设备绑定(Tether)等。 Android系统中DNS信息的缓存和管理。 网络服务搜索(Net Service Discovery,

2017-09-14 18:50:25 10345 3

转载 android netd和kernel&frameworks的通信逻辑

在应用到Linux内核之间需要一个桥梁,这个桥梁就是Netd守护进程,我们就从Netd守护进程开始去了解一些Android网络系统的工作流程。 Netd进程是通过init进程启动的,我们来看看它在init.rc中的定义: service netd /system/bin/netd class main socket netd stream 0660 root system

2017-09-13 09:29:03 2295

原创 Java之Semaphore介绍

一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。拿到信号量的线程可以进入代码,否则就等待。通过acquire()和release()获取和释放访问许可。

2017-09-05 14:26:26 518 1

转载 android BLE蓝牙RSSI数据的读写

获取RSSI 无非就两种方法,一是在扫描回调时读取,二是在BLE连接之后读取,两种方法都比较简单,关键在于对蓝牙BLE的认识。那我首先就介绍下在 扫描回调时怎么去读。因为通常情况下,我们扫描时的设备及信息都是放在界面上,我就拿这个来说吧, 以呈现在列表上为例,首先 适配器的创建在创建适配器的时候,要加入 addDevice()方法 public ArrayList<BluetoothDevice

2017-08-29 13:53:02 8185 1

转载 rsync命令排除文件和文件夹exclude

假设最开始的命令是这样的 rsync -e ‘ssh -p 30000’ -avl –delete –stats –progress [email protected]:/home/demo /backup/ 一、排除单独的文件夹和文件 要排除sources文件夹,我们可以添加 ‘–exclude’ 选项: –exclude ‘sources’ rsync -av –progress -

2017-08-21 10:15:16 6409 1

原创 android 硬件加速 hardwareAccelerated

从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作.   启用硬加速最简单的的方法是对整个应用启用硬件速.如果你的应用只使用标准的view和Drawable,全局启用硬加速将不会带来任何负面影响.然而,因为硬加速不是被所有的2D绘制所支持,所以启用它时可能对你的自定义绘制

2017-08-17 14:40:47 1240 1

转载 android版本列表

代号、标记和细分版本 (Build) 号简要来说,Android 的开发是围绕着版本系列进行的,这些版本使用美味的点心名字(按字母顺序)作为代号。平台代号、版本、API 级别和 NDK 版本为方便起见,代号与以下版本号、API 级别和 NDK 版本相对应:代号 版本 API 级别 Nougat 7.1 API 级别 25 Nougat 7.0 API 级别 24 Marshmallow

2017-08-14 09:37:40 7720

转载 android StackTraceElement的一些用法

本文简要介绍了StackTrace(堆栈轨迹)以及StackTraceElement的一些用法一、什么是StackTraceStackTrace(堆栈轨迹)可以认为是一系列方法调用过程的集合。异常处理中常用的printStackTrace()即为打印异常调用的堆栈信息。二、StackTraceElement介绍StackTraceElement表示StackTrace(堆栈轨迹)中的一个元素,属性包

2017-07-17 13:49:33 1697 1

转载 libxxx.so has text relocations. This is wasting memory and prevents...解决方案

问题表现形式错误或警告日志当targetSdkVersion>=23且使用debug签名时,在6.0+的Android设备上运行App会输出以下错误Log:E/linker: /data/app/packagename/lib/arm/libxxx.so: has text relocations W/System.err: Java.lang.UnsatisfiedLinkError: dlo

2017-07-14 14:13:34 4736 2

转载 调用.so 文件时报错has text relocations

调用.so 文件时报错has text relocations 调用.so文件时报如下错误: libcooee.so: has text relocations 说明编译.so文件时使用了较低版本sdk 而project 中的配置 targetSdkVersion22 大于so编译时使用的sdkversion,所以只需要把功能中 的targetSdkVersion降低即可

2017-07-12 18:03:23 1233 1

转载 OBM,ODM,OEM分别指什么

什么是OEM?OEM(Original Equipment Manufactuce,原始设备生产商)。 是在社会化分工、专业化利益驱动下产生的,其基本含义是:按原单位(品牌单位)委托合同进行产品开发和制造,用原单位商标,由原单位销售或经营的合作经营生产方式。 经济学鼻祖亚当斯的《国富论》(经济学第一本专著)第一篇第一章第一节开宗明义的就是讲专业化,古典经济学认为专业化可以促使边际收益的递增和边际成本

2017-07-01 09:56:21 6706 1

转载 android clipChildren属性用法介绍

在说clipChildren属性之前首先看一个效果图: 为了做出这种效果图你能想到的方式是什么呢?用RelativeLayout?还是……. 其实很简单,只要用了这个神奇的属性后这个效果很容易就可以实现,下面是注意点: 1、只需在根节点设置Android:clipChildren为false即可,默认为true,注意:一定是在布局文件的根节点设置,否则不起作用2、可以通过android:l

2017-06-30 17:54:57 809 1

转载 CVBS信号解析过程

在我们的电视天线信号线里就只有两跟线,中间有一根很粗的线,外围包着一层的线,这是为了防止外界信号的干扰。在这两根线中一个是地线,一根是全电视信号线,外围的是地线。做视频处理很难免要接触电视信号,了解全电视信号的原理。当我们把电视的信号线接到示波器上看其波形时会发现其波形很乱,但总是有一些规律可循:每隔一段特别乱的波形之后有一个很小的低电平。在这其中,中间那些特别乱的波形其实就是有效像素电平的高低信号

2017-06-27 11:04:24 22370 1

转载 CVBS信号解析过程

在我们的电视天线信号线里就只有两跟线,中间有一根很粗的线,外围包着一层的线,这是为了防止外界信号的干扰。在这两根线中一个是地线,一根是全电视信号线,外围的是地线。做视频处理很难免要接触电视信号,了解全电视信号的原理。当我们把电视的信号线接到示波器上看其波形时会发现其波形很乱,但总是有一些规律可循:每隔一段特别乱的波形之后有一个很小的低电平。在这其中,中间那些特别乱的波形其实就是有效像素电平的高低信号

2017-06-27 11:03:33 2053

转载 android bootchart使用说明介绍

简介: bootchart是一个用于Linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。bootchart是一个对linux启动流程进行分析得开源软件工具。Android中有集成bootchart源码,路径为system/core/init/bootchart.c第一部分:先从具体使用流程如下1、编译and

2017-06-19 21:09:34 1653 1

转载 android 保持屏幕常亮和唤醒屏幕的方式

一、引言 Android开发中会用到将应用的屏幕保持常亮,比如播放视频、音乐等,如果总是用户去触摸屏幕来保持屏幕常亮,那么用户体验会很差;二、实现方式 通过设置Window Flag(最简单,推荐) 通过PowerManager 第一种方式:[java] view plain copy getWindow().addFlags(WindowManager.LayoutParams.FLAG

2017-06-14 15:32:44 2794 1

转载 android 服务前台运行startForeground

android休眠一段时间后(1-2小时),后台运行的服务被强行kill掉,有可能是系统回收内存的一种机制,要想避免这种情况可以通过startForeground让服务前台运行,当stopservice的时候通过stopForeground去掉。以下是android官方描述:Running a Service in the Foreground A foreground service is a

2017-06-14 15:20:55 4388 2

转载 Android 系统提供的常用命令工具

Android提供了不少命令行工具,方便我们调试和查看信息.下面是frameworks/base/cmds(android 6.0.1)中的命令. treecmds−L1cmds├−−am├−−appops├−−appprocess├−−appwidget├−−backup├−−bmgr├−−bootanimation├−−bu├−−content├−−dpm├−−hid├−−idmap├−−im

2017-06-12 12:32:40 2012 1

转载 android 6.0 power按键深度解析

主要分析power按键点亮屏幕和灭屏,而且我们主要分析在PhoneWIndowManager的流程。之前的博客我们分析过按键的流程,当有按键会先到PhoneWindowManager的interceptKeyBeforeQueueing函数,然后再去分析到应用,而power按键也是如此,并且其最后不会分发到应用中去,下面我们看下PhoneWindowManager的interceptKeyBefo

2017-06-09 18:29:54 1661

原创 监控系统中N制和P制区别

很多人都知道有NTSC和PAL两大制式,那到底什么是NTSC制式?什么是PAL制式呢?简单的说,NTSC和PAL属于全球两大主要的电视广播制式,但是由于系统投射颜色影像的频率而有所不同。NTSC是National Television System Committee的缩写,其标准主要应用于日本、美国,加拿大、墨西哥等等,PAL 则是Phase Alternating Line的缩写,主要应用于中国

2017-06-08 11:21:15 11312

转载 android开机流程启动说明

第一步:启动linux 1.Bootloader 2.Kernel 第二步android系统启动:入口为init.rc(system\core\rootdir) 1./system/bin/service manager: Binder 守护进程; 2.Runtime; 3.Zygote :app-process/app-main; 4.Start VM; 5.Start server 6.Star

2017-05-31 11:02:39 1191 1

转载 android RIL源码研究

这篇文章介绍ril.cpp中实现部分代码中的四个字符串输出函数及其相应的枚举类型。首先看requestToString()函数的代码,它的功能是将将ril_command.h和ril_unsol_commands.h中的命令转换成字符串描述:const char * requestToString(int request) { switch(request) { case

2017-05-31 10:36:13 1535 1

转载 adb命令模拟按键输入keycode

例子://这条命令相当于按了设备的Backkey键 adb shell input keyevent 4 //可以解锁屏幕adb shell input keyevent 82 //在屏幕上做划屏操作,前四个数为坐标点,后面是滑动的时间(单位毫秒)adb shell input swipe 50 250 250 250 500 //在屏幕上点击坐标点x=50 y=250的位置。adb sh

2017-05-18 14:57:32 13188

转载 445端口入侵详解

445端口入侵详解 关于“445端口入侵”的内容 445端口入侵详解 本站搜索更多关于“445端口入侵”的内容 445端口入侵,在这之前我们首先要看的还是445端口为什么回成为入侵的端口呢? 445端口就是IPC 服务的默认端口 ipc一摘要二什么是ipc 一

2017-05-14 22:53:54 2007

转载 445端口入侵详解

445端口入侵详解 关于“445端口入侵”的内容 445端口入侵详解 本站搜索更多关于“445端口入侵”的内容 445端口入侵,在这之前我们首先要看的还是445端口为什么回成为入侵的端口呢? 445端口就是IPC 服务的默认端口 ipc一摘要二什么是ipc 一

2017-05-14 22:52:57 13174

转载 135、137、138、139、445等端口解释和关闭方法

3389端口: 在服务器中,3389端口的开放是必需的,因为任何服务器的管理员如果想很好地管理自己的服务器,都需要开启这种方便的网络管理服务。不过3389端口一旦开启,必然会引来无数黑客,即便那些黑客破解不了密码,也很可能占用你的连接请求数,使你无法登录自己的服务器。 关闭服务器中的3389端口的方法很简单。在windows2000或2003中,进入控制面板,然后选择“管理工具”中的“服务”,在弹出

2017-05-14 22:46:37 25550

转载 android SIM卡状态监听TelephonyManager

/* 监听sim状态改变的广播,返回sim卡的状态, 有效或者无效。 双卡中只要有一张卡的状态有效即返回状态为有效,两张卡都无效则返回无效。 */ import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; impor

2017-05-13 10:14:08 6306 1

转载 android EditText定制输入内容 InputConnectionWrapper用法

1.EditText作为一个比较成熟的View,在Android的应用开发中得到极为广泛的使用。在某些特殊情况下,我们可能需要定制EditText的输入内容,只允许指定功能的输入,例如输入一个”ddd:mm:ssssss“格式的度分秒角度。一些错误的思路有:(1)OnKeyListener,实现EditText的OnKeyListener并不能拦截EditText的输入,OnKeyListener只

2017-05-12 13:37:19 6901 1

转载 Android Emoji的处理

一、Emoji的前世今生1、Emoji的诞生Emoji表情是一种视觉上的速记符号,最初是在1999年由一个名叫Shigetaka Kurita(栗田穣崇)的日本人发明的。 而后随着发展,出现了统一码联盟(The Unicode Consortium),它的主要工作就是统筹统一码(Unicode)的发展。作为一种字符编码,Unicode的出现主要是为了解决现存编码不能够在多语言电脑环境中使用的问题

2017-04-26 10:13:11 3254 1

转载 搭建GIT服务器在linux的机器上

GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。假设你已经有sudo权限的用户账号,下面,正式开始安装。第一步,安装git:$

2017-04-25 10:32:36 636 1

LoopPageView

通过自定义ViewGroup实现上下左右滑动和页面切换,里面包括实现了一些属性动画的计算和配置,让应用的界面拖动的过程中的动画效果展示的更流畅

2017-12-09

android 自定义频谱实现

android 常见的音频播放中,频谱特效,尤其是播放MP3的时候,我们经常见到的效果。

2016-02-29

android 音乐律动频谱实现

本Demo实现了android 音乐播放器等音频播放中频谱跳动的实现,可以通过调节均衡器实现完美的效果.

2016-02-29

HelveticaNeueLTPro-Lt

这是一款很全的字体样式,可以做本地优化处理,可以在移动开发中有很大帮助

2016-01-27

slidingmenu里嵌套viewpager

该项目详细的举例做出了slidingmenu里面嵌入viewpager的效果,供参考使用

2015-01-07

TOAD12下载链接及序列号

该文档是方便下载TOAD for ORACLE以及注册完成

2014-12-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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