自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (41)
  • 收藏
  • 关注

原创 Android 7.1.1 锁屏界面启动流程

前几天遇到一个低概率复现锁屏界面不显示,只显示状态栏的问题,跟了下锁屏界面启动显示的流程,在这分享下,也方便以后自己查看。前面简单介绍了下Zygote启动流程, Zygote进程启动后会首先创建一个SystemServer进程,SystemServer进程在调用startOtherServices同时也会调用WindowManagerService的systemReady()方法 //fra

2017-02-21 17:32:03 8591 5

原创 Android 6.0 Marshmallow 通知栏中QuickSetting分析

在SystemUI中,状态栏和通知栏都是在PhoneStatusBar的makeStatusBarView方法添加进来的,这里主要说说状态栏中的QuickSettingPanel里各个图标的显示,以及各个控件的功能实现

2016-05-29 18:12:31 7307 5

原创 java面试题:下面代码会创建多少个对象?

初看可能是会创建5个,那么实际到底会创建多少呢?下面来逐步揭晓。备注:以下谈论都是执行上面代码前字符串常量池没有adb、efg情况下进行的。

2022-09-20 11:39:02 1044 1

原创 [Android jni开发系列(四)]利用jni开发生成Android串口开发的so库

1、定义包含native方法的java类package android.serialport.api;import android.util.Log;import java.io.File;import java.io.FileDescriptor;import java.io.FileInputStream;import java.io.FileOutputStream;...

2018-04-24 20:36:03 820

原创 AndroidStudio 使用常见错误记录

1、使用AndroidStudio编译apk后,点击运行图标后,提示apk安装失败,具体错误如下: Session 'app': Error Installing APKThe APK file xxx does not exist on disk.Error while Installing APK找到Gradle窗口,点击下图的图标 点击刷新后,重新运行,即可安装编...

2018-04-20 16:41:07 495

原创 [Android jni开发系列(三)]AndroidStudio jni开发常见问题

前面总结过两种方式进行Android ndk开发,今天再介绍一种利用AndroidStudio进行ndk开发的方式,和系列二中的方式差不多,不过不需要编译Android.mk和Application.mk,更为简单。利用《[Android jni开发系列(二)]AndroidStudio移植eclipse NDK项目开发》中配置的javah命令,生成包含native方法java类j对应jni头...

2018-04-10 21:19:54 5032

原创 [Android jni开发系列(二)]AndroidStudio移植eclipse NDK项目开发

1、在eclipse上开发ndk项目时一般都是在项目里新建jni目录,通过编写Android.mk和Application.mk编译生成so库,然后放到libs目录下就可以使用,下面来看下,在AndroidStudio怎么采用这种方式生成so。2、利用AndroidStudio配置几个需要用到的快捷命令,javah、ndk-build、ndk-build clean,具体作用如下:java...

2018-04-10 20:44:06 561 1

原创 [Android jni开发系列(一)]AndroidStudio开发环境搭建和常见错误解决

1、下载ndk ndk可以直接通过sudio下载(Tools->Android->SDK Manager->SDK tools里下载cmake和ndk) 或者直接到AndroidDevTools下载,像配置sdk一样配置ndk的环境。2、新建Android项目时勾选Include C++ Support,估计也是android以后主推的方式,我是通过Androidstud...

2018-04-09 21:27:10 1418

原创 Android调用getSimSerialNumber获取iccid不完整

1、在Android中我们可以通过下面这段代码获取SIM的iccid,关于手机中常用术语简介可参考《Android中CS域和PS域以及手机中常用术语简介》 TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); String si...

2018-04-05 11:10:18 13730 6

原创 [build.gradle配置系列(一)]android studio根据版本号动态生成apk名

1、 在build.gradle定义函数,根据时间动态返回时间标签def static releaseTime() { return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))}2、根据时间生成versionnameandroid { compileSdkVersion 26 ...

2018-03-30 21:02:15 6587

原创 Android 7.1 Settings详解

最近一直在看settings的问题,觉得不错,就研究了下,写出来方便以后查找问题,不用每次都去重新看,如有不对的地方,欢迎纠正。 在Android N 上Settings是带有侧拉菜单的,我们先从界面的角度大致看下Settings是怎么显示出来,然后再看下view对应的数据是如何加载而来的,先来看看设置的界面如下: 从图片可以看出主界面有点类似listview的感觉,只不过所有的item分

2018-01-08 09:28:46 19847 9

原创 Android lk启动流程

Andorid 7.1.1 lk启动流程little kernel 是小内核小操作系统,简称lk,主要用来引导运行OS系统,lk启动后根据一些参数值,引导启动进入不同模式。其实Android手机有四种启动方式,四种方式分别为:正常开机启动;recovery启动;fastboot启动;ffbm启动下面就以高通代码为例,分析下这四种启动方式分别是在什么条件下启动的手机上电后,会从

2018-01-05 20:09:24 4823 2

原创 Android getPhoneType获取当前phone类型不准

Android开发中,可能需要区分当前的phone是gsm或cdma类型,有时候cdma phone注册到4G网络时,调用Phone@getPhoneType获取到的类型为PHONE_TYPE_GSM,其实除了这个方法获取sim卡类型,还可以根据iccid会mccmnc来区分当前的sim卡类型,甚至可以区分得更详细(移动、联通、电信),具体方式如下://Only one sim cardpr

2017-11-28 11:41:27 4074

原创 Android N获取外置SD卡或挂载U盘路径

在Android N上并没有提供直接的方法获取外置SD卡或挂载U盘路径,可以通过下面方法获取内置sd卡路径Environment.getExternalStorageDirectory().getAbsolutePath();通过查看getExternalStorageDirectory源码发现,Android只是没有公开的接口获取而已 public static File getE

2017-10-21 16:25:07 6461

原创 java计算文件MD5值,比较两文件是否相同

比较两个文件是否相同,一般都是比较文件的MD5值是否相同,java中计算MD5值的方法如下: private MessageDigest mMessageDigest = null; try { mMessageDigest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmExc

2017-10-20 13:52:01 12031

原创 Android 7.1.1 插入耳机图标显示

在Android手机上插入耳机后,状态栏会显示耳机图标,之前手机都是在手机最上面状态栏右边的区域显示,在Android 7.1.1上,插入耳机后不会显示这个图标,而是在最左边有个耳机的通知,这个通知是在下面的类中监听耳机插入或拔出的广播来显示或取消插入耳机的通packages/services/Telecomm/src/com/android/server/telecom/TtyManag

2017-10-18 19:30:40 4515

原创 Source Insight 4.0显示Tab键、空格以及Tab键转为4个空格

Source Insight 4.0中显示Tab键、空格、以及用4个空格替换Tab键,如下选择"Options"-->"Preferences"接着选择对应的文件类型,把Tab、空格、以及Tab强制转换为空格都勾选上

2017-08-09 10:38:24 35560 3

原创 修改sepolicy后编译出现‘Error while expanding policy’

在系统中添加某个“*.te”后,可能会出现下面的错误:libsepol.report_failure: neverallow on line 263 of system/sepolicy/domain.te (or line 9133 of policy.conf) violated by allow xx device:chr_file { read write open };libsep

2017-07-21 14:32:12 8607 3

原创 Android中监听语言变化的两种方式

Android中监听语言变化的方式有两种,通过在Activity里配置configChanges,然后重写onConfigurationChanged方法,另一种方式通过注册广播监听LOCALE_CHANGED,下面就来看下,这两种方式以及遇到的一些问题。1.在Activity里配置configChanges1.1 在对应Activity里添加configChanges配置

2017-07-19 22:40:28 14292 2

原创 利用AndroidStudio添加其它语言目录

用AndroidStudio创建工程时,默认只有一个values目录,当需要添加一个其它语言目录时,具体流程如下:这样在res目录下就多了一个‘values-zh-rCN’目录,当然也可以自己在res目录下自己新建一个这样目录,这里纯粹就是记录下。ps:当我们不知道手机里某个语言对应在那个values目录时也可以通过这种方式查看,这个里面应该是最全的

2017-07-16 19:10:19 467

原创 Android N(7.0) SystemUI-Notification

上篇文章简要介绍了下手机状态,今天主要说下SystemUI中Notification的显示,系统或第三方应用都能够发送通知,通过调用NotificationManager的notify或notifyAsUser(仅限系统签名应用使用,当然通第三方应用通过反射方式也能调用)通知到statusbar,下面来看看具体流程。 1、通过Notification.Builder构建通知,调用Notificat

2017-07-09 22:42:56 2260

原创 Android N SystemUI-状态栏

手机中状态栏主要用来显示电池电量信息、时间、信号格数、系统图标(闹钟)、通知图标,我们先来看看手机statusbar的界面今天我们先来简单介绍下这个界面是怎么显示出来,考虑到放到一起写,文章就有点太长了,后续会对信号格图标显示、通知图标、系统图标这几个复杂点的一一介绍 从上图中我们基本可以看出,从左到右基本上是通知图标显示区域、系统图标显示区域,系统图标区域里主要包括wifi、飞行模式、闹钟、耳机

2017-07-06 09:19:28 5707

原创 Android N(7.0) 编译出现ninja_wrapper Error

Android 7.0以后采用了Jack server编译,如果直接下载源码编译的话会出现下面的编译错误 ninja: build stopped: subcommand failed. make: *** [ninja_wrapper] Error 1需要对jack-server进行相关配置,具体步骤如下: 1、查看根目录是否有”.jack-settings” 执行”cd ~”,

2017-07-05 22:57:24 2419 1

原创 Android 7.1 icu4c(icudt56l.dat)编译

在Android系统开发中我们经常会遇到修改语言名称翻译、日期月份显示格式、时区名称、星期开始周期等问题,这些问题通常都能通过修改icu4c来达到目的,我们先来看看icu4c简介。ICU4C:是ICU在C/C++平台下的版本, ICU(International Component for Unicode)是基于"IBM公共许可证"的,与开源组织合作研究的, 用于支持软件国际化的开源项目。IC

2017-07-03 22:39:20 2931

原创 面试中Activity常见的坑你都知道吗?

1、activity生命周期? Activity生命周期大家应该都知道,这里就不在啰嗦了,下面看看Google官网提供的一张经典的生命周期流程图: ①当启动Activity时,系统会依次调用onCreate-onStart-onResume,此时Activity处于可见状态②当Activity被kill或者调用了本身的finish方法时,依次会调用onPause-onStop-onDestroy

2017-07-01 10:41:55 904

原创 Android TextView文字设置超链接、背景高亮、关键字高亮等用法

在使用TextView时,有时候会遇到需要把文本中部分关键字设置成超链接、文本高亮、文本背景高亮、下划线、关键字字体稍大等功能,今天特意看了下Android中TextView这些功能的基本用法,首先我们把设置这些style公用的地方提取出来,定义个方法setTexViewByStyle,如下 private void setTexViewByStyle(TextView view, Parcelab

2017-06-11 18:05:22 1870

原创 TextView vs Button

前两天在研究View事件分发传递时,很好奇为啥Button默认就可以点击,而TextView需要设置setClickable后才可以点击,就翻阅了下源码,写下来记录下。通过前面《Android中view的onTouch&onClick事件分发机制详解》知道,view的触摸事件先于点击事件,且最先执行的是dispatchTouchEvent,在这个方法里会判断当前view是否可点击,然后调用onTou

2017-06-10 19:31:26 482

原创 Android中view的onTouch&onClick事件分发机制详解

当view设置了setOnClickListener或setOnTouchListener之后,onClick或onTouch方法才会被调用,如下 mTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {

2017-06-10 19:25:01 2503

原创 Android view绘制之setContentView详解

Android view绘制之setContentView详解Activity是我们开发过程中最常见到的界面,然而它是怎么从layout布局文件加载显示到我们眼前的呢?接下来我们就来看看,activity界面的呈现过程,在Activity中我们通常通过setContentView()来设置layout的资源。

2017-06-08 21:17:30 643

原创 adb命令之input和getevent

在Android调试时,如果触屏不能正常使用时、调试没有屏幕的机器或调试样机上没有的按键功能时,可能会用到通过命令的方式发送按键消息给Android系统进行调试,或着当点击屏幕后手机没有反应,需要确认是手机屏幕出现问题,还是当前布局不合理,有控件的click事件被其它控件消耗了,导致没有出现预期结,同样也可以通过adb命令监听屏幕上的点击事件。1、下面先来讲下adb shell input 命

2017-05-13 23:10:10 4719 1

原创 User版本手机如何导出联系人数据库?

1、Android在4.1后的版本加入了可以导出联系人数据的隐藏功能,实现代码:packages\providers\ContactsProvider\src\com\android\providers\contacts\debug\ContactsDumpActivity.java2、 使用方法方法1:运行adb命令 "adb shell am start -a com.an

2017-05-13 22:29:11 1136

原创 Android 7.0后SettingProvider ContactsProvider TelephonyProvider MediaProvider数据库位置

在Android7.0之后,很多Provider数据库的位置都发生弄改变,在这记录下,免得以后又忘记了,找起来费劲。1、SettingsProvider在之前SettingsProvider是是以settings.db的方法存在,在Android N之后SettingsProvider数据存储目录在data/system/users/userId(没开启多用户,userid为0),数据存储

2017-05-09 23:43:04 6431 3

转载 Android SDK在线更新方法

虽然国内google被墙了,但仍可利用国内的某些镜像网站实现Android SDK在线更新,使用方法如下:1、启动 Android SDK Manager ,打开主界面,依次选择『Tools』、『Options...』,弹出『Android SDK Manager - Settings』窗口;2、在『Android SDK Manager - Settings』窗口中,在『HTTP Pro

2017-05-09 22:21:53 18553 2

原创 windows cmd窗口adb logcat 查看中文输出乱码

Android logcat输出默认是UTF-8编码,要想正确显示中文,需要设置在windows cmd窗口的编码设置,以下为设置步骤。步骤1:打开cmd.exe命令行窗口步骤2:通过 chcp命令改变代码页,UTF-8的代码页为65001 cmd下输入 C:/chcp 65001执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符

2017-05-09 22:07:54 4910

原创 Android CTS 问题分析

为保证开发的应用在所有兼容Android的设备上正常运行,并保证一致的用户体验,Google制定了CTS(Compatibility Test Suite)来确保设备运行的Android系统全面兼容Android规范,Google也提供了一份兼容性标准文档(Compatibility Definition Document, CDD)。进行CTS之前,需要先从google官网下载相关文件,

2017-04-18 21:24:17 4019

原创 Android中dumpsys命令详解

dumpsys命令主要用来查看所有系统服务状态的相关信息,在分析bug的时候,有时候就需要用到dumpsys查看相关service的信息,下面就简单说下这个命令的使用1、查看当前手机所支持的dump服务不同Android手机可能支持的dumpsys命令不同,可通过下面命令查看当前手机所支持的dump服务,并且查询服务名对应的具体service#查看当前手机所支持的dump服务ad

2017-04-08 13:48:21 3132

原创 AndroidStudio出现Cannot run program "/usr/local/bin/git"错误

在Android studio上,导入带有git的项目时,提示下面的错误ProcessNotCreatedException: Cannot run program "/usr/local/bin/git" (in directory...): error=2, No such file or directory通过网上查阅资料发现,原来Android Stduio默认的git是安装在

2017-04-03 22:34:21 6190

原创 Mac上zip,rar,tar文件命令解压和压缩

经常遇到在windowns上的压缩文件,在mac上解压出现问题,特意总结了下在Terminal里常用命令的方式解压和压缩文件1、zip压缩文件zip命令的参数很多,可以利用"zip --help"查看,在这里就不在一一说明了,下面只说几个常用的zip -q -r -e -m -o 'yourName.zip'  "zipfile list''-q :不显示压缩进度状态-r :子

2017-04-03 13:05:56 83887

原创 Android 7.1.1 系统时区,语言,地区,铃声配置

Android手机开机后,有一些常用的默认属性配置,今天就捡主要的说下手机里默认时区,语言,铃声这些常用的属性配置1、配置默认时区对于China来说默认时区是GMT+08:00,如果系统中没有配置默认时区的属性,时区肯定不是中国标准时间,控制时区的属性为persist.sys.timezone,只需要在配置系统默认属性的地方加上下面属性就行#在mk文件中配置系统属性如下PRODU

2017-04-01 15:04:03 6704

原创 awk和sed命令详解

1、awk命令awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk命令形式:awk [-F|-f|-v]  'commands' input-file(s) [-F|-f|-v] -F指定分隔符,-f调用脚本,-v定义变量 var=value'commands

2017-03-31 21:42:24 2583

利用AndroidStudio三种方式进行jni开发demo

利用AndroidStudio三种方式进行jni开发demo,详细介绍每种方式需要配置的文件以及注意事项

2018-04-10

jni开发demo

在AndroidStudio上开发eclipse ndk项目,以及编写过程中遇到的问题总结

2018-04-10

Android手机adb驱动

Android手机adb驱动,安装后就可以使用adb命令

2017-07-15

最新版adb工具1.0.36

Android Debug Bridge version 1.0.36,最新版adb工具

2017-06-15

Android 6.0 Marshmallow MO时序图

Android 6.0 Marshmallow MO 高清时序图

2016-12-24

屏幕取色器

安装运行后,可以知道屏幕上任何位置的颜色,多用于android开发时,取一些背景颜色啥的

2016-01-10

sim联系人的增删改查

主要是对sim卡联系人的一些增删改查的操作,以及ContentObserver的使用

2015-12-20

retrofit使用

在android开发中利用retrofit去访问网络,还用到了butterknife,parceler,gson这些库文件去简化我们代码的书写

2015-09-11

Android开机动画包bootanimation.zip

里面包含自己收集的android开机动画包bootanimation,以及自己用图片制作的bootanimation

2015-04-22

apk自动签名工具

对反编译的apk进行自动签名,需要jdk对应的版本在1.7以上

2014-08-20

java反编译工具

该工具可以直接反编译.jar文件,查看java源代码,简单易用

2013-12-24

android定时发送短信

android中定时发送短信,帮助你解决忘记发重要的短信....

2013-12-04

android TabHost

android中TabHost学习demo,含注释,下载导入即可运行

2013-10-14

android asynchttp

利用asynchttp实现连接网络登录,里面包含详细的注释,下载即可导入运行

2013-10-14

android开源数据库框架db4o

android开源数据库db4o学习demo,里面包含操作数据库常见的四种操作CRUD

2013-10-14

android模仿360界面布局

android 模仿360布局的demo,下载后就能直接导入运行

2013-10-14

android实现类似相册功能

android实现类似与相册功能,可以扫描本地图片和外界USB中的图片

2013-10-11

实现GridView拖到切换位置

android实现GridView拖动时切换对应位置的item

2013-10-11

android实现天气预报

android实现挑起预报的widget,下载后直接运行,长按桌面添加widget

2013-10-11

android实现限时抢购

android利用listview实现限时抢购,倒计时

2013-10-11

ImageView ,图片处理,progressDialog

android利用进度条调整图片的大小的缩放和旋转

2013-10-11

android OPGL

android利用OPGL画出动态国旗飘动的效果

2013-10-11

仿微信开门效果

android仿首次安装微信时的界面和开门效果

2013-10-11

ExpandList实现,图片缓存

android利用ExpandLis实现,且带图片缓存,仿android系统设置界面

2013-10-11

android 九宫格

android 实现手机开机时九宫格界面,代码简单易读有注释

2013-10-11

城市列表显示

android实现按字母顺序显示城市列表,且右边带字母点击跳到对应的字母的城市

2013-10-11

android城市列表三级联动

android实现城市列表三级联动,spinnr 城市列表数据库

2013-10-10

android 鲁大师界面模仿

android, 仿鲁大师界面源码实现,listeview展示后删除其中的item

2013-10-10

android框架ViewSwiper学习

android框架ViewSwiper学习实例 解压后就可直接运行哦

2013-09-01

ViewFlipper应用实例

Android 滑动效果ViewFlipper实现图片手势移动,解压就可以运行的哦//

2013-09-01

android翻书效果

实现android翻书效果,源代码解压后就可以直接导入eclipse运行

2013-09-01

mysql驱动 源码 java

mysql最新的驱动,以及java源码

2013-07-23

《HTML5从入门到精通》中文学习教程.pdf

《HTML5从入门到精通》,中文学习教程

2013-03-20

算法导论习题解答

算法导论课后习题解答,中文版,包含了算法导论中重要章节的习题解答

2012-12-07

算法导论思考题和课后解答题答案

算法导论思考题和课后解答题答案,基本上包含了全部题目的答案

2012-12-07

sql server 驱动

sql server 连接java驱动,jdbc连接

2012-11-11

mysql数据库驱动

java 与mysql连接驱动,建立jdbc连接

2012-11-11

高校学籍管理系统

1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。 2)能够将指定的信息从文件中删除。 3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。 4)可以统计全部学生的总成绩,及其在班上的排名。 5)能够统计各科的平均成绩及及格率。 6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。 7)如果检索不到相应的信息应提示用户。

2012-11-11

选修课程系统

有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,学生可按要求自由选课

2012-11-11

二级C语言机试题目

校园网•新视野教育二级C上机考试复习资料,总共包含50套机试题目

2012-11-11

空空如也

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

TA关注的人

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