系统屏幕锁的源码在
在framework里面的phone/com/android/internal/policy/impl下面
http://gitorious.org/0xdroid/fra ...
nternal/policy/impl这里可以看到源码
LockPatternKeyguardView它负责用来创建LockScreen和UnLockScreen和锁屏的模式(图案、Sim锁之类的)
KeyguardViewMediator就是负责控制锁屏和键盘保护功能
---------------------------------
下面的代码可以用来点亮屏幕
PowerManager
pm = (PowerManager)getSystemService(POWER_SERVICE);
mWakelock
= pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP
|PowerManager.SCREEN_DIM_WAKE_LOCK, "SimpleTimer");
mWakelock.acquire();
.......
mWakelock.release();
下面的代码用来屏幕解锁
KeyguardManager
keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock
keyguardLock = keyguardManager.newKeyguardLock("");
keyguardLock.disableKeyguard();
使用这两段代码,需要在AndroidManifest文件中加入
<uses-permission
android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
<uses-permission
android:name="android.permission.WAKE_LOCK"></uses-permission>
---------------------------------
修改framework/base/policy下面的代码,phonewindow.java和lockscreen.java。
---------------------------------
研究原因:希望作出一条类似android OvershootInterpolator 的动画曲线,OvershootInterpolator 动画曲线的不足之处就是感觉前期过快,后期过慢,虽然可以调Tension值,但tension值过小,过头量也会过小,不符合需求。
先分析一下OvershootInterpolator 的动画曲线:
OvershootInterpolator 动画曲线公式:x * x * ((mTension + 1) *x + mTension) + 1.0f,通过一次求导y‘=3(mTension+1)*x*x+2*mTension*x,可得出斜率为0的两个点(x=0、x=-2*mTension /3(mTension +1)),通过二次求导y''=6*(mTension+1)*x+2*mTension,可得曲线斜率变化趋势(y'’大于或小于0)。mTension控制非x=0的0斜率点位置。
贝塞尔曲线分析:
1. 假设曲线的开始和结束点为(0,0)、(1,1),图中C1和C2为两个控制点,曲线的控制因素分析:
1).由于我要求的曲线结束点的斜率要为0,而且y值确定为1,所以C2的位置仅由x轴控制。
2).由于我对C1的y值没有直接的要求,但对初始速度有直接的要求,所以C1的y值我间接的使用斜率来控制或决定,x轴就不用说肯定是一个决定因素。
综上所述,我使用三个参数来决定贝塞尔曲线的形状:开始点的斜率、C1的x值、C2的x值。
贝塞尔曲线的一篇很好的分析博客: http://blog.csdn.net/GnuDoyng/archive/2005/02/23/299008.aspx
需求是b点与c点斜率为0,a点斜率和b点的位置有要求。我的想法是ab段和bc段都使用一条二次方或三次方曲线。
android开发Map应用,要调取GoogleMap,这就需要申请ApiKey。key又有debug和release之分。前者用于在模拟器上调试,后者用于真机。相应的,使用的keystore也是不同的,debugkeystore是Android SDK为开发者准备好的,直接使用即可,而releasekeystore则需要开发者使用JDK中的工具Keytool自己生成。
申请apikey for debug
1 使用eclipse查看debugkeystore的存放位置
2 通过debugkeystore获取MD5
申请apikey for release
1 使用keytool生成releasekeystore
C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias myAndroid.keystore
-keyalg RSA -validity 20000 -keystore myAndroid.keystore
2 通过releasekeystore获取MD5
申请apikey
登陆Google官网申请apikey http://code.google.com/intl/zh-CN/android/maps-api-signup.html