自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android studio启动DDMS失败

今天我用AS启动DDMS失败了,失败的信息是:A Java Runtime Environment (JRE) or Java Development Kit (JDK)must be available in order to run Monitor. No Java virtual machinewas found after searching the following location

2017-09-29 18:14:53 2105 1

原创 Default Activity Not Found

前言有时候我们需要编译没有android.intent.action.MAIN属性activity的应用,但是Android studio默认是需要mainactivity的解决方法最简单了,就是在AndroidManifest.xml中添加下面这行代码:<action android:name="android.intent.action.MAIN" />如果实在是不需要android.in

2017-09-29 18:07:51 4593 5

原创 最近任务栏清除app导致app不执行onDestory

问题步骤:在计算器面板上出入数字,然后按Menu键进入最近任务界面,右滑清楚计算器,接着再进入计算器期望结果:再次进入计算器,上面显示的内容和之前的一致实际结果:没有保存初步分析开发计算器的工程师A说保存的代码写在了onDestory内,他说因为计算器的生命周期没有走完酒杯杀掉了,觉得是系统的问题,让系统的工程师看我看了问题和工程师A的回复,我首先说,保存重要数据,不要保存在onStop

2017-09-09 17:16:17 4217

原创 Android N 各种ANR的时间

前言大家都知道组件的执行任务的时间过长可能会导致ANR,但具体是多久呢?源码里面都定义了宏,我们把它们找出来,做了记录正文Service Timeout文件:ActiveServices.java // How long we wait for a service to finish executing. static final int SERVICE_TIMEOUT = 20*10

2017-07-07 14:37:07 9234 1

原创 Andorid N 最近任务管理器流程详解(五)

5、其他这章节主要会讲mRecentTasks赋值的地方,截图的时机,一些重点方法等5.1 mRecentTasks赋值分别会在startActivity的过程中和重新resume时对mRecentTasks赋值,另外ActivityStack和AMS两者中的mRecentTasks是同一个,具体可以看源码分析5.1.1 startActivity其中startActivity

2017-06-15 10:53:20 2617 1

原创 Andorid N 最近任务管理器流程详解(四)

4. Task的移除本章节主要讲讲Task移除的流程4.1 removeTask文件:SystemServicesProxy.java public void removeTask(final int taskId) { if (mAm == null) return; if (RecentsDebugFlags.Static.EnableMockTasks)

2017-06-14 16:55:29 1925

原创 Andorid N 最近任务管理器流程详解(三)

3. 缩略图的获取本章节主要讲一下缩略图的获取

2017-06-14 14:06:24 1503

原创 Andorid N 最近任务管理器流程详解(二)

2、Task的获取本章主要承接上面的来讲,解析一下Task的获取流程2.1 preloadTasks文件:RecentsTaskLoader.java public void preloadTasks(RecentsTaskLoadPlan plan, int runningTaskId, boolean includeFrontMostExcludedTask) {

2017-06-14 10:51:23 2760 1

原创 Andorid N 最近任务管理器流程详解(一)

前言相信大家都用过任务管理器,不同的手机上面启动的方式可能会有不同,有虚拟按键或者实体按键的,可能会通过短按或者长按Menu键来触发,如果这些都没有,只有一个指纹按键的,可能是通过长按的方式来触发。这个功能我们经常会用到,他可以让我们快速回到之前任务栈,好了,废话不多说了,直接来分析代码。 我们分为五个部分来讲解,分别是:最近任务管理器的触发Task的获取缩略图的获取Task的移除其他

2017-06-12 16:54:39 2627

原创 Android 广播内部机制详解(三)

4 广播的处理广播的处理都会调用BroadcastQueue下的scheduleBroadcastsLocked(),接下我们来看看这个函数4.1 scheduleBroadcastsLocked文件:BroadcastQueue.java public void scheduleBroadcastsLocked() { if (mBroadcastsScheduled) {

2017-03-06 16:27:27 2120

原创 Android 广播内部机制详解(二)

2. 广播的发送广播的发送,其实也是交给AMS来完成的,首先调用context.sendBroadcast将广播发给AMS的相应函数,AMS再和之前注册的Receiver进行匹配,匹配成功后,就发送给对应的进程。好了,接下来我们通过源码来论证这个结论。2.1 sendBroadcast文件:ContextImpl.java @Override public void sendBroad

2017-03-06 11:40:50 871

原创 Android 广播内部机制详解(一)

前言相信大家在应用开发中都用过Broadcast,单纯从使用的角度来说,是非常容易的,但对于系统开发工程师来说,需要了解广播运行的机制,那还是有必要去阅读它的源码。 关于Broadcast的代码也是非常非常多的,我这里将分成几个部分来讲,分别是: 广播的类型、广播的注册、广播的发送、广播的处理、广播总结和建议。传送门: Android 广播内部机制详解(二) Android 广播内部机制详解

2017-03-03 10:02:29 856 1

原创 Handler延时处理消息的流程

前言昨天碰到一个关于handler的问题,当我使用sendEmptyMessageDelayed这个方法,在手机熄屏的情况下并没有按时发送消息,而且中间的时间还不固定,有时候短,有时候长,但是在亮屏和充电情况下,没有该问题。 难道handler的延时本身就不准?带着疑问我看了下handler的运行机制,找到了答案!next()和enqueueMessage()本篇文章默认为你已经知道handler

2016-12-30 16:00:37 11355 1

翻译 Android开发之获取手机运行时间

前言昨天我碰到一个问题,需要判断两次的时间,我当时的第一反应是用System.currentTimeMillis()来判断,最后发现这样会有一个BUG,那就是用户如果手动修改时间,那就全乱套了,于是我想有没有一个时间是只增加不减少,并且用户是不能修改的?一查,发现还真有,主要和SystemClock有关,接下来对这个类进行学习。

2016-12-30 14:29:57 6481

原创 Android自定义View

前言Android给我们提供了大量的View,但是我们有时候发现很多APP的有一些Android本来没有的View,显然他们都是自定义的。自定义View可以实现很多绚丽的效果,但是如果你对View结构层次,事件的分发机制及View的工作原理不是很了解的话,那么做出来的View是有隐患的! 本文主要讲解自定义View和ViewGroup的实现,我默认为你们已经了解了View结构层次,事件的分发机制及

2016-12-10 23:28:54 240

原创 设计模式---Builder模式

前言:网络上有人将它定义为:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的对象。 所以建造者模式适合于一个具有较多的零件(属性)的产品(对象)的创建过程。

2016-12-05 09:45:08 233

原创 ActivityManagerService源码分析(一)

前言:AMS是Android系统服务中很重要的一个,他负责四大组件的启动、切换、调度、生命周期的管理等等,接下来我们根据AMS的启动来分析AMS的源码

2016-12-02 11:35:02 1191

原创 Handler浅析

Android中多线程经常会涉及到传递消息的问题,尤其是更新UI,众所周知,子线程是无法更新UI,这时候就要借助Handler的消息传递机制。

2016-11-28 11:10:46 241

原创 自定义插值器

相信大家都用过补间动画(Tween Animation),那么对插值器(Interpolator)应该也不陌生,虽然SDK已经提供了一些Interpolator的实现类,但是如果你想实现一些特定效果,那就得自己自定义了

2016-11-18 13:49:28 728

原创 判断用户模式

因为android有多用户模式,即机主或访客,不同的模式所能获得权限也不同。所以我们有时需要判断当前的模式。

2016-11-18 10:28:31 864

原创 解决Font size和Display size设置到最大,显示异常的问题

Android7.0的设置里面有一个显示模块,里面有字体大小和显示大小的设置,调节的时候可能会造成显示异常的问题。

2016-11-12 15:06:47 5468

原创 解决Android应用签名和系统不一致的问题

今天碰到一个签名的问题,我负责的应用安装时,会报错:安装命令: adb install -r ApeFolio.apk报错信息: Failed to install ApeFolio.apk: Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Package couldn't be installed in /data/app/com.ape.l

2016-11-02 14:51:14 77907 12

原创 解决Malformed line 1 in source list /etc/apt/sources.list.d/google-chrome.list (type)

昨天我安装chrome浏览器时,最后源出了点问题,导致apt-get update不能使用了,报错如下:```neal@ubuntu:~$ apt-get updateE: Malformed line 1 in source list /etc/apt/sources.list.d/google-chrome.list (type)E: The list of sources could no

2016-10-30 11:21:17 24382 4

原创 虚拟机中的ubuntu怎么设置1920X1080分辨率

前言 装过ubuntu的虚拟机人应该都知道,刚刚装完系统时,分辨率小的令人发指,根本就不能愉快的使用,所以必须调整,但是有些分辨率ubuntu里面也没有,这就需要我们自己自定义。自定义分辨率输入:$cvt 1920 1080 返回的结果是: # 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Modeli

2016-10-29 23:09:19 124602 30

原创 装机那些事

前言我之前本来想装双系统,奈何主板没有ubuntu的驱动,于是只能继续虚拟机,中途有很多经验我觉得有必要分享一下,希望你们不要走我的弯路。一、不是所有的主板都支持ubuntu有过装机经验的同学应该知道,装机前有一个准备工作,就要进的bios把secure boot置为disable。 前方高能,请注意了!!! 不是所有的主板可以设置secure boot,也不是所有的主板都提供ubuntu的驱

2016-10-29 22:34:11 447

原创 清除未接来电及通知

应用中有时候会需要获取未接来电,但是当你看完这些未接来电你可能想清除未接来电的通知,及把未接来电变成已读,这时候你需要对数据库操作。 有两种方法可以达到上述需求(其实原理都一样):一、 直接更改数据库 我们可以参考源码来进行操作,找到MissedCallNotifierImpl.java类,路径是: packages\services\Telecomm\src\com\a

2016-10-21 23:23:57 2559

原创 libphonenumber:Google的公共电话号码解析库

解析电话号码,智能获取地名

2016-10-21 19:25:47 7881 1

原创 Android 6.0动态权限的获取

Android6.0的权限分为普通权限和危险权限,其中普通权限还是可以和以前一样,通过在AndroidManifest.xml中赋予,比如:<uses-permission android:name="android.permission.INTERNET"/> 所以我们重点说一下危险权限

2016-10-15 23:05:20 523

window sqlite下载

window sqlite下载

2018-12-19

adb 1.0.39下载

windows 平台下adb 工具 ,这个版本是1.0.39版本的,里面还有fastboot。如果你之前有adb,那么只要复制替换即可,如果没有,那么需要配置adb,配置的方法主要是设置环境变量,方法可以百度,网上有很多

2018-12-19

adb 1.0.32下载

windows 平台下adb 工具 ,这个版本是1.0.32版本的,里面还有fastboot。如果你之前有adb,那么只要复制替换即可,如果没有,那么需要配置adb,配置的方法主要是设置环境变量,方法可以百度,网上有很多

2018-12-19

signapk.jar

签名工具

2016-11-02

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

TA关注的人

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