- 博客(91)
- 资源 (17)
- 收藏
- 关注
原创 Android Camera App启动流程解析
做了7年的camera app开发,给自己一个总结,算是对camera的一次告白吧。Camera被大家誉为手机的眼睛,是现在各大手机厂商的卖点,也是各大厂商重点发力的地方。Camera的重要性我就不在这里赘述了,让我们进入正题。
2023-11-09 20:27:24
1381
1
原创 Android——RuntimePermission介绍
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-07-16 19:45:26
3464
原创 观察者模式--Java设计模式
观察者模式定义:定义了对象之间的一对多的依赖,这样一来,当一个对象发生改变状态的时候,它的所有依赖者都会收到通知并自动更新。参考如下图: 观察者设计模式也叫发布-订阅模式。 也可以称作:出版者+订阅者 = 观察者模式 在Android中观察者模式的实例有:广播机制,ContentObserver的注册方式,一个是同步的观察者模式,一个是异步的观察者模式。当两个对象之间松耦合,它们依然可以交互,
2015-06-13 11:23:59
5594
原创 Android广播发送机制剖析【android广播系列二】
上篇博客大致说了说广播的注册机制,动态注册和静态注册广播的原理还不一样,动态广播最后HashMap中了,最后放到mReceiverResolver中,以后当ActivityManagerService接收到广播的时候,它就可以再成员变量mReceiverResolver中找到对应的广播接收者了。下面我们来说说广播的发送机制。 广播发送时候,在Context.java的方法中调用的,有如下方法:
2015-05-01 10:27:58
12772
1
原创 Android广播注册机制剖析【android广播系列一】
广播是android四大组件之一,所以广播的重要性也是显而易见的,最近需要做个功能,需要对广播的机制深入了解,所以我就整理下思路。平时我们写代码的时候,广播只是用来通知机制的,不是用来通信机制,通信机制还是要用binder机制来实现。但是现在市场上的第三方app大部分都是滥用广播,用广播来监听一些事件来实现自启动或者后台启动。这就误解了谷歌的意思。本来很好的组件,被大家滥用,导致用户老是感觉手机的程
2015-04-29 09:03:18
5281
原创 Android异步加载AsyncTask详解
最近项目发现个重大问题,结果打log跟踪查是AsyncTask导致的。如果对AsyncTask了解的不够深入透彻,那写代码就是埋雷。以后不定在哪个时间爆炸。首先我们要了解,谷歌为什么发明AsyncTask,AsyncTask到底是用来解决什么问题的?Android有一个原则---单线程模型的原则:UI操作并不是线程安全的并且这些操作必须在UI线程中执行。 在单线程模型中始终要记住两条法则: 1.
2014-11-05 20:03:13
16253
原创 java 二分查找算法
编程之美在于算法之美,先来看看二分查找的算法: 隐藏条件:二分查找必须是有序的,从小到大,或从大到小的排序才能进行二分查找,下面来看看代码:
2013-10-11 15:57:29
5312
1
原创 Android按键灯,指示灯总结【Android源码解析十一】
Android中有各种灯,背光灯,按键灯,指示灯,等等;前几天修改了这部分代码,整理下思路,其实都不难; 首先,来说说指示灯(提示灯),即未接电话,未接短信的时候,会闪灯,这个其实就是NotificationManager这个类中的notify()方法来处理的;流程简单来过一下: Step 1:从应用层发送的notify(),到framework层被Notification
2013-09-25 19:38:08
19866
原创 Android4.2中Phone的P-sensor的应用的分析。
先说现象,现象就是来电话,接通电话,把手机屏幕靠近脸部,遮挡住P-sensor,屏幕变黑了,不遮挡住P-sensor,屏幕就点亮了。接着我们来看看代码流程。 步骤一: 在PhoneGlobals.java文件中onCreate()方法中: 。。。 。。。// lock used to keep the processor awake, when we don't care for the d
2013-08-09 21:21:09
12515
1
原创 Android4.2锁屏流程【Android锁屏解析三】
谷歌对Android4.2的版本做了一些改动,突出的改动就是锁屏可以添加widget,即锁屏widget,这个是谷歌的一个大的改动,先来说说android4.2做了哪些改动? (1)Lock screen widgets如图: (2)梦话模式的添加 简单介绍如下:白日梦是一个互动屏幕保护程序模式,当用户的设备开始停靠或充电。在这种模式下,系统将启动一枕黄粱 - 远程安装的应用程序提供内容服务
2013-07-23 20:00:12
28116
2
原创 android系统锁屏详解【android锁屏解析二】
谷歌的代码写的确实不错,我很幸运,一开始接触代码就赶上了谷歌这个开源的系统,让我的视野开阔了很多,也让我看到了优秀的代码工程师写到的代码。心怀感恩之心。 --
2013-05-29 22:59:12
51581
3
原创 android4.0自定义锁屏总结【android锁屏研究一】
最近搬家了,从北京--->深圳,除了天气有点不同外,其他的都差不多,工作性质和以前也类似!纪念一下自己的迁移。 -----题外话 转载请表明出处:http://blo
2013-04-22 23:10:33
40460
4
原创 Android--Pin流程,飞行模式相关流程总结【工作日记一】
Radio 对应相关的Log: Logcat对应的Log:KeyguardUpdateMonitor:ACTION_SIM_STATE_CHANGEDKeyguardUpdateMonitor:handleSimStateChange:intentValue=PIN_REQUIMSimLockPatternKeyguardView:createUnlockScreenFor(SimPin
2013-02-25 22:29:48
7511
原创 Android---->Allapps加载流程详解【AndroidICS4.0——>Launcher系列五】
工作需要总结,这样就能保证地基牢固,就能爬得更高; ----2013-01-07题记 转载请标明出处:http://blog.youkuaiyun.com/wdaming1986/articl
2013-01-07 20:52:38
14583
4
转载 【转载】毕业5年决定人的一生-- 大家千万不要错过这篇文章
大家千万不要错过这篇文章,毕业三年多了,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很大启迪,这篇文章将会改变我的一生,真的太好了,希望与有缘人分享,也希望对有缘人有所帮助!看完之后有种“相见恨晚”的感觉,特别激动,希望大家好好的珍藏这篇文章,相信多年以后,再来看这篇文章,一定有不同的感觉。 正如"打工皇帝"唐骏说:"我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入
2013-01-02 15:56:48
5811
原创 我的2012移动开发年度总结——革命的一年
2012年,是我在移动行业畅游的一年,这一年发生了很多事,人生三大事之一结婚,评选csdn专家荣誉称号,坚持写博客写了一年,对手机这个行业总算有了个大体的认识。但是还有一些不顺人意的事,这里就不说了。但有一件事不得不说,在这家公司上班以来,从来没迟到过,一年一次都没有。这个也是我比较骄傲的事!不过公司也没什么奖励。 2012的经历从工作,生活,学习三方面来说说取得了哪些进步?
2012-12-31 19:04:50
5935
3
原创 Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
最近一周在研究rom移植,所以就对Smali语言学习了一下,Smali语言其实就是Davlik的寄存器语言;Smali语言就是android的应用程序.apk通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件,文件的展示语言。转载请标明出处:http://blog.youkuaiyun.com/wdaming1986/article/details/8299996
2012-12-15 22:36:31
101873
3
原创 Launcher启动的流程图【AndroidICS4.0——>Launcher系列四】
先画一个Launche启动的流程图,虽然不是特别规范,但是勉强能看看,我也整理下Launcher的一系列的流程图,最近修改Launcher,又对Launcher加深了一些了解,转载请标明出处:http://blog.youkuaiyun.com/wdaming1986/article/details/8267156 大明图(1) 说明:loadWorkspaceFirst,这个是
2012-12-06 21:55:58
8015
原创 PhoneGap对比html5写android应用程序【android进化三十八】
什么是PhoneGap,其实就是在手机中可以写html代码的插件,下面一段话来源网摘“PhoneGap是一个开放源代码的,跨平台的构建移动应用程序的框架。在PhoneGap中,完全通过HTML,CSS和JavaScript构建应用程序,但是它们却可以像本地程序一样使用iPhone 、iPad,Android,blackberry,Symbian,Palm等硬件功能。PhoneGap的目标就是通过标
2012-08-05 21:15:34
14107
1
原创 AndroidICS4.0---->LockScreen锁屏流程【Android源码解析九】
先来说说LockScreen分类; 一、无锁屏; 二、锁屏: 1、UnLockScreen: 图案锁、 PIN锁, 密码锁; 2、LockScreen: 波纹锁; 转载请表明出处:http://blo
2012-07-16 22:47:35
30834
23
原创 Android中ICS4.0Launcher中Fold的功能详解【androidICS4.0-->Launcher系列三】
AndroidICS4.0的文件夹和2.3的文件夹区别比较大,主要区别有: 一、android2.3的文件夹大小是固定的,4.0的文件夹大小是按照里面的元素大小决定的。 二、android2.3的文件夹图标是固定的文件夹的形式展示的,而4.0是从文件中取前3个的缩略图垂直展示在屏幕上的。估计谷歌怕侵犯苹果文件夹的知识产权,所以没有做成和苹果一样的效果。 三、an
2012-07-15 17:22:44
12840
4
原创 移动开发之我见--“Android开发生涯”
纵观这几年的发展,移动手机的发展真是翻天覆地,前两年诺基亚一统天下,苹果颠覆了整个手机市场,安卓也分得了一杯羹,WindowPhone手机也纯纯欲动,Bada也抓紧推出自己的系统。360也要推出自己的手机系统,百度,腾讯纷拥而至。未来世界是谁的,说不好,让我们拭目以待吧。
2012-06-20 22:29:26
5713
5
原创 Android-->Launcher拖拽事件详解【androidICS4.0--Launcher系列二】
AndroidICS4.0版本的launcher拖拽的流程,基本和2.3的相似。就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类。等等。4.0的改变有一些,但是不是特别大。这个月一直在改动Launcher的缩略图的效果,4.0的缩略图的功能没有实现,还得从2.3的Launcher中摘出来。通过做这个缩略图对Launcher的模块有一点点了解,拿来分享一下Launcher拖拽的工作流程
2012-06-17 19:32:25
19588
3
原创 Android中ICS4.0源码Launcher启动流程分析【android源码Launcher系列一】
最近研究ICS4.0的Launcher,发现4.0和2.3有稍微点区别,但是区别不是特别大,所以我就先整理一下Launcher启动的大致流程。Launcher其实是贯彻于手机的整个系统的,时时刻刻都在运行,要是Launcher不运行了,手机就得黑屏了。Launcher的LauncherMode=singletask,所以说不管Launcher启动了哪个应用,总有个Launcher的实例在堆栈中,并
2012-05-20 22:35:37
13810
2
原创 Android的全局键(home键/长按耳机键)详解【android源码解析八】
如果想在Android手机要想扩展一个实体键,就我知道而言有两种方法,基于Android4.0的源码来分析的和2.3的源码有点区别,区别不大,下面分享给大家: 转载请标明出处: (一)可以在frameworks层的KeyEvent.java这个类中定义一个值,在PhoneWindowManager.java这个类中做处理就可以了。(Home键就是这么实现的)。效果图如下:
2012-05-06 17:45:48
36743
14
原创 Android时钟的widget【安卓进化三十七】
前段时间解决一个widget的bug,具体分析是“appWidgetManager.updateAppWidget(THIS_APPWIDGET, views);”这个方法updateAppWidget()在恢复出厂设置后不更新了,我就查原因,结果通过log的验证发现时sdk的bug:step 1:public void updateAppWidget(int[] appWidgetIds, Re
2012-04-29 23:11:45
9192
1
原创 Android闹钟拓展版【安卓闹钟可换壁纸版】
经过写上篇文章Android闹钟最终版【android源码闹钟解析】 .发现有一些留邮箱的,但凡留邮箱的,我就发源码过去了,不错,基本上收到邮箱的都留言感谢了,这样我的成就感就多一点,也能有更多留邮箱的。学习是一个相互的过程,就像师说中“问道有先后,术业有专攻,仅此而已!”,知识就是一层窗户纸,捅破了就没什么了,-------->个人浅薄的拙见,在这表达一下! 前段时间参加一个CMD
2012-04-19 23:04:10
10259
18
原创 Android闹钟最终版【android源码闹钟解析】
我以前写了个复杂闹钟的demo,参见Android闹钟【复杂版】【大明进化十五】 .但是里面的bug有一些,好多人留言,所以我就看看源码,找找原因?顺便把源码代码整理出来,弄成一个完整的可以运行的apk,今天上午就整理了一下,才发现,源码处理的逻辑多一些,考虑的情况多,比如开机后接收一个广播,然后从数据库中取时间和当前时间对比,设置闹钟,当时区改变了,也会发送广播,对闹钟进行设置的。
2012-04-14 18:14:12
120387
1021
原创 Android中GridView拖拽的效果【android进化三十六】
最近看到联想,摩托罗拉等,手机launcher中有个效果,进入mainmenu后,里面的应用程序的图标可以拖来拖去,所以我也参照网上给的代码,写了一个例子。还是很有趣的,实现的流畅度没有人家的那么好,我只是模仿这种效果,我写的这个拖拽是两个图标之间进行交换,所以,当从一行的某个位置,换到下一行的另一列的时候,发现有好几个图标都改变位置了,因为是相邻两个交换位置,所以每经过相邻的图标的时候都改变位置
2012-04-08 09:16:08
20400
3
原创 Android中Browser中下载覆盖的提示【安卓源码Browser系列一】
安卓官方的Browser的写的真是不怎么样,上个月让我做了一个功能,是修改browser下载的修改,如果sdcard中有了这个文件,就弹出一个Dialog,提示内容为“改文件已经存在,是否覆盖?”,是就删除这个文件,重新下载,否就不做任何操作!谷歌源码的流程是下载文件会另外取个名字,参见Android 下载重复文件命名规则【android源码解析七】这篇文章写得很详细,介绍谷歌源码下载文件后命名规
2012-03-30 22:23:16
5689
2
原创 Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
工作中遇到的问题要注意总结,我在工作中遇到了问题,现在抽空简单整理一下; 第一个问题:判断手机当前上网用的是sim卡还是wifi,我写了一个封装的方法,以后可以拿来用: /** * check the internet is * mobile or wifi * add by wangxianming * in 2012-03-
2012-03-22 23:29:37
8920
原创 Android 下载重复文件命名规则【android源码解析七】
题记:一个人不能在两个同样的坑里摔倒。 去年4月份的时候,我有一个任务,让我写个下载保存文件的方法,如果文件的名字存在,就加“-1”,如果仍然存在,就在-后面的数字加1,例如:文件名:Keep_On_It.mp3,第一次下载是Keep_On_It.mp3,第二次下载名字就保存成:Keep_On_It-1.mp3,第三次下载名字就保存成:Keep_On_It-2.mp3,第四次下载名字就
2012-03-11 19:22:23
6735
原创 从10号线(牡丹园)地铁指示台的bug看到程序员背后的工作
今天,晚上9点下班回住的地方,和同事一起走到10号线地铁(牡丹园站)里面,看见地铁地面上有个机子,这时候地铁还没有来,于是乎我俩就走到了地铁的指示机前,是触屏的,但是不支持多点触控,点了一点,感觉还可以!有一些方便大家的提示,比如:地铁出口附近的公交车有哪些?但是没有详细的哪一个公交车具体经过的站牌是哪些?有地铁的最早发车时间和最晚发车时间表,就在看这个的时候,发现了一个bug,13号线开往西直门
2012-03-06 22:23:10
5116
2
原创 Android中launcherMode="singleTask"详解【android源码解析六】
android中launcherMode有4中属性:standard(默认), singleTop,singleTask和 singleInstance;网上有好多例子讲解这四种关系的:下面我列举几个链接: 大明原创---->转载请标明出处:http://blog.youkuaiyun.com/wdaming1986/article/details/7304191 htt
2012-02-28 23:19:56
49149
原创 Android中Ringtone播放详解【安卓源码解析五】
现在咱们来聊聊android系统中铃声的播放,从framework层面说说Ringtone的播放原理,我在android源码中碰到了播放系统铃声中的问题,所以仔细研究了这方面的知识,现在整理一下,给读者一些帮助,现在我对铃声的播放和设置特别亲切,不管是短信铃声方面的,来电铃声,还是日历铃声,email的铃声,闹钟的铃声,都能解决铃声方面的bug。前面我说了Notification的播放机制,And
2011-12-30 22:02:18
26783
原创 Android中Notification的framework层讲解【安卓源码解析四】
android的notificaiton的声音sound也是申请的AudioManager机制来播放声音的。最近让我找恢复出厂设置后,手机刚启动,接受短信没有声音,如果恢复出厂设置后,等一会儿,过个2分钟再接受短信,就有铃声了。下面我把我分析代码的方法写下来,给自己和读者一些启发: 日历也是用的是Notification,但是恢复出厂设置后,立马设置日历后,日历可以出声音,我看日历的
2011-12-18 17:23:29
19306
2
Android闹钟拓展版
2012-04-19
Android玲闹钟
2012-04-14
Android中GridView拖拽的效果!
2012-04-08
Android源码铃声汇总
2011-10-30
Android抽屉 SlidingDrawer
2011-10-29
Android的GridView动态选球
2011-09-18
Android音乐播放器
2011-09-18
Android复杂闹钟
2011-09-03
Android个人通讯录
2011-08-28
Android 小闹钟
2011-08-21
网上花店系统的设计与实现【源码+数据库】
2011-08-21
Android 双色球小游戏
2011-08-13
PopupWin效果源代码
2011-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人