自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

华歌诗的博客

分享android开发的经验

  • 博客(32)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android源码开发之在下拉通知栏增加关闭数据连接的对话框

实现这个需求不难,但是在SystemUI/src/com/mediatek/systemui/qs/tiles/MobileDataTile.java里添加个对话框时,点击关闭数据连接会发现弹框被下拉通知栏挡住了,因为下拉通知栏是system dialog,而alertdialog是activity dialog,system的优先级肯定要高些。这时可以在弹框前加一句代码,让下拉通知栏收起来m

2016-02-17 15:26:24 602

原创 android源码开发之短信选择联系人时选择邮箱地址无作用

短信-设置-基本设置-选择联系人时包含邮件地址这个很奇怪,可能是留下的bug,要想这个功能实现,也很简单packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java----private void addContacts(int pickCount, int requestCode) {----

2015-12-24 21:04:48 576

原创 Android源码开发之小部件定位图标只能在准确度高和耗电量低之间切换

packages/apps/Settings/src/com/android/settings/widget/SettingsAppWidgetProvider.java------        public void requestStateChange(final Context context, final boolean desiredState) {将         

2015-12-23 11:51:28 402

原创 Android源码开发之控制开关机铃声

Android的开关机铃声是可以控制的,可以在设置里加个开关,控制开关机铃声的播放。因为涉及到c部分,所以systemprop是最好的选择1.开机铃声的控制frameworks/base/cmds/bootanimation/bootanimation_main.cpp在main函数,找到sePaly标志位char audio[PROPERTY_VALUE_MAX];pro

2015-12-04 11:21:34 2858 3

原创 android源码开发之Camera添加自动对焦ListPreference,camera,key

camera是一个复杂的设计,代码量太大先从添加自动对焦声的例子说起添加keyCamera / res / xml / camera_preferences.xml            camera:key="pref_camera_focussound_key"           camera:defaultValue="@string/pref_camera

2015-11-28 14:43:02 888

原创 Android源码开发之横屏actionbar的title消失

最近遇到一个bug,虽然看起来简单,实则不是那么回事设置----语言和输入法----个人字典,进去,竖屏的时候actionbar上显示个人字典,但当横屏的时候,title突然消失定位到Setting/src/com/android/settings/inputmethod/UserDictionaryList.java在onResum里        getActivity().g

2015-11-26 14:48:22 1037

原创 Android源码开发之Gallery图片放大倍数

最近遇到一个客户提出的奇葩需求,要求照片无论滑动还是双击,其最大放大倍数都不超过1.5倍,双击的就不说了,很简单,mtkonlne上也有,手指滑动,放大倍数也要不超过1.5倍,查看代码packages/apps/Gallery2/src/com/android/gallery3d/ui/PositionController.java  private static final float

2015-11-23 11:12:27 949

原创 Android源码开发之蓝牙通知振动

蓝牙配对,收到文件的时候,都会在通知栏收到一条消息,同时会响一声,在振动模式的时候只会振动,但是在户外模式,即最大铃声与振动的时候却只有铃声没有振动。        mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);Log.i(TAG,"getRingerModeInternal=

2015-11-20 11:31:10 903

原创 Android源码开发之mimeType分享

好久没有分享Android开发的经历了遇到一个小bug,apk分享界面没有蓝牙,这种问题很好解,Bluetooth里本身支持apk类型文件的分享,没有分享,可能是没有在AndroidManifest.xml文件里注册,于是在            android:process="@string/process"            android:theme="@android

2015-11-20 11:03:41 726

原创 Android判断gps是否打开

LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);        boolean gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);

2015-11-02 14:45:45 1032

原创 Android中发送消息的几种方式

先定义一个handleprivate static Handler handler = new Handler() {         @Override         public void handleMessage(android.os.Message msg) {             if (msg.what == 1) {                 tex

2015-10-12 10:58:42 1220

原创 Android启动线程的几种方法

提到线程,不得不说一下handle一、Android设计handle的目的        面试中大部分面试官都会问到这个问题,在解决耗时的问题时,我们经常会开启多线程,然而更新UI的时候,只能在UI线程即主线程里操作,这时候就需要引入handle,作为UI线程和其他线程沟通的桥梁。简单来说,Handler的设计实际上是为了应用程序内,其他线程和主线程进行通信。二、start方法启动线程

2015-10-10 11:23:59 1181

原创 深入理解Android的startservice和bindservice

一、Android设计services的目的        1.service运行在后台,得以让我们运行在前台的时候去做一些其他的操作,如后台下载,播放音乐 2.Android系统安全的原因导致了我们在不同的进程间无法使用一般的方式共享数据,我们可以用services的aidl实现共享操作二、startServices      一旦被调用,如果没有程序停止它或者它自己停止,servi

2015-10-08 15:59:16 399

原创 Android源码开发之长按power键添加GlobalActions

应客户需求,开发一个长按power键,弹出截图的菜单,原本按power键只会弹出关机和重启、飞行模式等。1.找到frameworks/base/core/res/res/values/config.xml添加数组            power        reboot        airplanescreenshot    2.找到framework

2015-10-06 19:27:33 852

原创 Android源码开发之获取当前时间的时分秒

很多时候,由于字库单一,我们需要对时间进行个性化显示,用具体的图片来代替时间数字,首先需要得到当前时间的具体数字//获取当前时间的时分秒Calendar calendar = Calendar.getInstance();int hour = calendar.get(Calendar.HOUR_OF_DAY);int minute = calendar.get(Calendar.

2015-10-06 17:23:28 1068

转载 快速排序java实现

快速排序java实现         快速排序的基本思想:         通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。       先看一下这幅图:把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端

2015-09-22 12:27:33 348

原创 一分钟看懂回调

回调在Android中应用还是比较广泛的,今天来介绍回调1.先定义一个接口public interface CallBack {void execute();}2.回调方法public class TestCallBack{ public   void  test(CallBackImpl callBack){           long  begin = S

2015-09-21 11:29:30 349

原创 Android源码开发之通话计时功能

一开始拿到这个问题,搜了搜资料,网上有一大堆,不过,貌似都没有什么用,都是讲的理论知识,并没有实践。最开始的思路是,监听通话状态的广播,通话开始计时,挂断结束,但这样,又不好区分是主叫还是接听,拨打112等电话可能也被计时,果断放弃了这个。接着,想从calllog入手,通过查询calllog来获取通话时长,不过,如果把通话记录删掉,也是无济于事,况且boss还要求通话计时,即使恢复出厂设置,数据也

2015-09-21 10:58:21 2475 3

原创 android5.0源码开发之NVRam存储,恢复出厂设置数据不被擦除--下篇

这篇,我们来说说上层对NVRam的使用NVRam的存取是以byte的形式进行的    private byte callValue[] = new byte[16];//定义16个字节,用以读取存储两个long型    private long[] callinout = new long[2];    private synchronized void WriteData()

2015-09-19 14:50:35 1918

原创 android5.0源码开发之NVRam存储,恢复出厂设置数据不被擦除--上篇

MTK有一个特殊的存储区域,叫NVRam,这部分存储器用来保存重要的数据,如:校准参数、IMEI写号、FactoryMode等,即使刷机,只要不格式化下载,这些数据还在,恢复出厂设置也不会被擦除。今天就来与大家探讨NVRam的具体用法一、底层,include我都省掉了1.添加idvendor/mediatek/proprietary/custom/xxxx/cgen/inc/Custo

2015-09-19 14:11:58 4575 7

原创 android5.0源码开发之自定义低电量警告AlertDialog

应客户需求,在电量为10,7,5,2的时候,弹出低电量警告框,并且每次弹框,点一下确定就不再弹了。/frameworks/base/packages/SystemUI/src/com/android/systemui/power/PowerUI.java里有个监听电池状态的广播,打log发现,每隔10秒,电池状态会报一次,具体修改如下    AlertDialog mBadWaring

2015-09-19 11:30:39 1333

原创 android源码开发之监听来电状态

在很多时候,我们都需要监听来电状态,然后做一些操作,例如,来电铃声和短信通知音同时响,这时,我们就需要监听来电铃声,如果来电就暂停短信通知音import android.telephony.TelephonyManager;if (TelephonyManager.ACTION_PHONE_STATE_CHANGED.equals(action)){//来电广播       

2015-09-18 17:21:42 514

原创 Android源码开发之预制视频音乐等资源

Rom定制,最常见的就是内置客户提供的视频音乐等文件了,并且要求删除后恢复出厂设置资源还在,对于此类问题,貌似MTK也提供了方法,不过mtk给的方法,代码不好管控我们可以把资源随Rom放到手机里,再拷到storage目录里1.在system/media/resource放个android.mk文件,用于拷贝到out的system/media2.每次开机完成的时候,MediaProvid

2015-09-18 14:42:54 1857 1

原创 Android源码开发之来电接听振动

在Dialer模块里增加一个接听振动的菜单选项packages/apps/Dialer/res/xml/general_settings.xml                    android:key="button_vibrate_in_call"            android:title="@string/vibrate_in_call"         

2015-09-18 14:07:34 452

原创 android5.0开发之解决灭屏来日程只有声音没有亮屏

对于此类问题,我们可以找到发送通知的地方,然后判断是否有新通知,唤醒并点亮屏幕packages/apps/Calendar/src/com/android/calendar/alerts/AlertService.javastatic boolean isFired = false;//定义标志位void processMessage(Message msg) {---

2015-09-18 13:53:12 398

原创 Android开发之Messenger信使和service实现跨进程

我们经常会遇到进程间的通信,列举几个进程间数据通信的方法1.BroadcastReceiver广播可以携带数据,并且是跨进程通信的,这个大家都很熟悉,用法就不用多说了2.Settings.System这个操作简单,可以存取简单的值,并且跨进程,具体用法如下Long callOutTime = Settings.System.getLong(getContentResolver(

2015-09-18 11:59:43 335

原创 Android源码开发之Fragment之间的跳转

搞Rom定制,通常会遇到从一个fragment跳转到另外一个fragment,例如在lauuncher界面加一个menu菜单,点击会跳转到Settings模块的floatview,而这个floatview是一个fragment第一种思路,先intent跳转到Settings的activity,再用Settings里的方法startPreferencePanel()跳转到指定fragment,问

2015-09-18 11:32:21 1015

原创 Android源码开发之Sqlite3的广泛用途

说到安卓源码开发,不得不提强大的sqlite3工具,user版是没有这个的,编好的eng版本会在out/target/product/xxx/system/xbin生成sqlite3,如果你的user可以root,把sqlite3 push到手机的system/xbin,同样也可以操作。     例如,我现在要默认launcher的第一页布局里的app,需要查询app启动的包名类名。连usb,

2015-09-18 10:35:17 588

原创 Android5.0源码开发之修改Button大小写

在Android L之后的版本中,默认Button字体都是大写,这是因为Button的默认字母大写打开了,如果不想默认大写,可以如此修改Button属性android:textAllCaps="false"

2015-09-18 10:23:24 931

原创 Android SharedPreferences在不同应用模块里通信

Android源码开发,经常会遇到sharedpreference在一个模块写,在另一个模块读的情况,实现起来也很简单在Dialer模块里写 private static final String PREFER_NAME = "share"; private static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WOR

2015-09-17 20:39:43 550

翻译 世界时区表

2015-09-17 20:37:13 1874

原创 Android5.0源码开发之launcher切换语言后Folder和ShortcutT没有切换到当前语言

一、桌面快捷方式ShortcutT        app的快捷方式一旦生成,info.title都会存到数据库,检测到configuration语言改变时,launcher会重新loadworkspace,这时会从数据库查询info = getShortcutInfo(c, context, iconTypeIndex,  iconPackageIndex, iconResourceIndex

2015-09-17 19:44:17 1584

VB写的餐饮管理系统

VB写的餐饮管理系统,包括登录,增删改,很适合初学者,是入门的好帮手,很快帮你找到自信

2014-03-17

超市销售数据挖掘mfc

基于mfc的超市销售系统数据挖掘,sql server数据库,tab控件的使用,类的封装

2014-03-17

适用初学者的购物网站asp+access后台管理

适用初学者的购物网站asp+access数据库,后台管理,登录,注册,代码简单,一看就会,特备适用于初学者

2013-07-01

asp动态网站

2010access数据库accdb实现留言系统,登录,管理员登录

2013-06-28

餐饮信息管理系统

基于VB的餐饮信息管理系统的设计与实现,SQL数据库

2013-03-09

premier,ae,flash,ai软件教程下载地址大全

premier,ae,flash,ai软件教程下载地址大全

2013-03-09

网络3D交互开发技术简介

互联网是时代已经到来,3D网络的崛起无疑是一个热门的话题,3D网络技术已经越来越受到关注

2013-03-09

基于MFC是MP3

基于MFC的MP3播放器,利用active x插件的multimedia插件

2013-03-09

空空如也

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

TA关注的人

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