android 初始化类,Android 常用编程技巧/Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器)...
1、设置屏幕的亮度:
WindowManager.LayoutParams
lp=getWindow().getAttributes();
lp.screenBrightness=1.0f;
getWindow().setAttributes(lp);
WindowManager.LayoutParams 的 screenBrightness 是一个 0 表示最暗,1
表示最亮的浮点数。
1.0f 表示 100%,屏幕背景灯开到最亮。
适用于 Android1.5 或以上版本。
2、背景灯常亮
android.os.PowerManager
android.os.PowerManager.WakeLock
http://hi.baidu.com/sunnyykn/blog/item/74532f089567cd326b60fb0d.html
View 类有以下XML属性:
android:keepScreenOn - boolean
3、控制LED灯
主要是用 android.app.NotificationManager 类
final int ID_LED=19871103;
NotificationManager
nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification();
notification.ledARGB = 0xFFFFFF;
//这里是颜色,我们可以尝试改变,理论上0xFF0000是红色
notification.ledOnMS = 100;
notification.ledOffMS = 100;
notification.flags = Notification.FLAG_SHOW_LIGHTS;
nm.notify(ID_LED, notification);
nm.cancel(ID_LED);
4、让自己的程序获得ROOT权限
http://my.unix-center.net/~Simon_fu/?p=951
5、android 的音频架构(高手啊)
http://www.soomal.com/doc/10100002092.htm
http://www.360doc.com/content/10/1223/09/4525948_80586548.shtml
6、在Emulator上模拟来电效果
telnet
然后输入 o localhost 5554
输入gsm call 123456 上面显示OK
这时再去看模拟器,上面就有来电了.
---------------------------------------------------------------------------------------------
我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是(静态变量、静态初始化块)
>
(变量、初始化块) >
构造器。我们也可以通过下面的测试代码来验证这一点:
Java 代码
public class InitialOrderTest {
// 静态变量
public static String staticField = " 静态变量 ";
// 变量
public String field = " 变量 ";
// 静态初始化块
static {
System.out.println(staticField);
System.out.println(" 静态初始化块 ");
}
// 初始化块
{
System.out.println(field);
System.out.println(" 初始化块 ");
}
// 构造器
public InitialOrderTest() {
System.out.println(" 构造器 ");
}
public static void main(String[] args) {
new InitialOrderTest();
}
} 运行以上代码,我们会得到如下的输出结果: 静态变量
静态初始化块
变量
初始化块
构造器
这与上文中说的完全符合。那么对于继承情况下又会怎样呢?我们仍然以一段测试代码来获取最终结果:
Java 代码
class Parent {
// 静态变量
public static String p_StaticField = " 父类 -- 静态变量 ";
// 变量
public String p_Field = " 父类 -- 变量 ";
// 静态初始化块
static {
System.out.println(p_StaticField);
System.out.println(" 父类 -- 静态初始化块 ");
}
// 初始化块
{
System.out.println(p_Field);
System.out.println(" 父类 -- 初始化块 ");
}
// 构造器
public Parent() {
System.out.println(" 父类 -- 构造器 ");
}
}
public class SubClass extends Parent {
// 静态变量
public static String s_StaticField = " 子类 -- 静态变量 ";
// 变量
public String s_Field = " 子类 -- 变量 ";
// 静态初始化块
static {
System.out.println(s_StaticField);
System.out.println(" 子类 -- 静态初始化块 ");
}
// 初始化块
{
System.out.println(s_Field);
System.out.println(" 子类 -- 初始化块 ");
}
// 构造器
public SubClass() {
System.out.println(" 子类 -- 构造器 ");
}
// 程序入口
public static void main(String[] args) {
new SubClass();
}
} 运行一下上面的代码,结果马上呈现在我们的眼前: 父类
--
静态变量 父类 -- 静态初始化块 子类 -- 静态变量 子类 -- 静态初始化块 父类 -- 变量 父类 -- 初始化块 父类 -- 构造器 子类 -- 变量 子类 -- 初始化块 子类 -- 构造器 现在,结果已经不言自明了。大家可能会注意到一点,那就是,并不是父类完全初始化完毕后才进行子类的初始化,实际上子类的静态变量和静态初始化块的初始化是在父类的变量、初始化块和构造器初始化之前就完成了。
那么对于静态变量和静态初始化块之间、变量和初始化块之间的先后顺序又是怎样呢?是否静态变量总是先于静态初始化块,变量总是先于初始化块就被初始化了呢?实际上这取决于它们在类中出现的先后顺序。我们以静态变量和静态初始化块为例来进行说明。
同样,我们还是写一个类来进行测试: Java 代码
public class TestOrder {
// 静态变量
public static TestA a = new TestA();
// 静态初始化块
static {
System.out.println(" 静态初始化块 ");
}
// 静态变量
public static TestB b = new TestB();
public static void main(String[] args) {
new TestOrder();
}
}
class TestA {
public TestA() {
System.out.println("Test--A");
}
}
class TestB {
public TestB() {
System.out.println("Test--B");
}
} 运行上面的代码,会得到如下的结果: Test--A 静态初始化块 Test--B 大家可以随意改变变量 a 、变量 b 以及静态初始化块的前后位置,就会发现输出结果随着它们在类中出现的前后顺序而改变,这就说明静态变量和静态初始化块是依照他们在类中的定义顺序进行初始化的。同样,变量和初始化块也遵循这个规律。
了解了继承情况下类的初始化顺序之后,如何判断最终输出结果就迎刃而解了。
android 初始化类,Android 常用编程技巧/Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器)...相关推荐
- VC++ 常用编程技巧总结
VC++6.0的使用以及编程技巧整理 1.MDI子窗口一启动就最大化 BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) ...
- C语言常用编程技巧-结构体数组
本文主要用来记录C语言常用编程技巧,完成一下目的: 1.函数指针如何定义使用: 2.结构体数组如何定义使用: 3.callback 方法使用技巧: 以下代码为在ubuntu 系统进行编译,文件名为 s ...
- java类与对象 编程题目_Java类与对象的课后练习
Java类与对象的课后练习编程题(java2实用教程P111) 这章内容自学完了,在做教材课后其他练习题的时候(只要自己仔细)都没啥问题,但在做最后一道上机编程题的时候问题出现了,在阅读题目的时候自己 ...
- python描述符魔术方法_学习笔记-Python基础9-面向对象编程OOP-类的成员描述符(property)、类的常用内置属性、类的常用魔术方法、类和对象的三种方法...
一.类的成员描述符(property) 类的成员描述符是为了在类中,对类的成员属性进行相关操作而创建的一种方式,大部分属于数据清洗 属性有三种操作:get获取属性值.set修改或添加属性.delete ...
- jni调用java类_JNI之C++调用Java类 —— java.lang.String
JNI之C++调用Java类 -- java.lang.String 为什么要用C++调用Java类?很难回答,写着文章只是觉得JNI很有意思.于是开始编写一段使用VC++在Windows系统里调用j ...
- 《易学Python》——第6章 类与面向对象编程 6.1 类是什么
本节书摘来自异步社区<易学Python>一书中的第6章,第6.1节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区"异步社区"公 ...
- idea中删除java类并提交_IDEA 删除java类的3种提示
1. 点击 delete 删除文件时,会弹出如下选项: Safe delete (with usage search) Search in comments and strings "Saf ...
- Java类的实践:使用Java类描述一个车类
/* 使用java类描述一个车类:* 车都具备名字.颜色两个属性,还具备跑的功能* 即设计一个汽车类Car,该类中包含两个属性姓名(name).颜色(color),一个用于描述汽车跑的run()方法. ...
- 生成验证码的java类_生成验证码的java类
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffere ...
最新文章
- jupyter notebook 删除指定kernel
- 【推荐】SAP关闭正在执行的缓慢的程序
- [Gradle] 在 Eclipse 下利用 gradle 构建系统
- H.264算法的DSP移植与优化
- 利用 assistant_如何使用Dialogflow对Google Assistant操作实施本地履行
- cdr 表格自动填充文字_PS那些好用到哭的新手小技巧(1)——如何快速去除文字图片的水印或背景文字?...
- c语言超经典矩阵式键盘的接法,c语言超经典矩阵式键盘的接法,流程图和扫描程序...
- ios 读取各种类型文件
- 【计算机组成原理笔记】计算机的基本组成
- .Net Core之MVC项目的简单应用
- java网络蜘蛛_基于java网络蜘蛛程序
- Web前端基础课程内容有哪些?学前端要学什么你真的清楚吗?
- 开始写博客---越来越笨的脑子
- 大厂面经丨Nginx 面试 40 问
- 阿波罗-17高钛月海玄武岩的化学组成及其成因的探讨
- 永久免费的抠图软件分享
- 5种阿里常用代码检测推荐 | 阿里巴巴DevOps实践指南
- 2021年华中杯数学建模挑战赛B题技术问答社区重复问题识别求解全过程文档及程序
- Translation Rule 和命中法则
- 《真心话大冒险》微电影启动 张宁江献青涩初吻_0
热门文章
- Hooks中的useState
- 支持蓝牙的模拟器_PM 2032电池模拟器展会现场演示
- 苹果电脑裸机和不裸机的区别_将Kubernetes带到裸机边缘
- 敏捷团队为何失败,Bash技巧,Emacs vs. Vim,为Linux粉丝撰写的12部小说读物,以及其他热门歌曲
- Jono Bacon的社区管理指南
- 开源改变世界概括_为什么任何开源社区都很难改变
- 容器 | Docker 如此之好,你为什么还要用k8s
- JavaScript中try, catch, throw的用法
- oracle 安装时的日志文件,oracle10g安装的日志文件 Oracle10g怎么查看操作日志
- android menu width,如何更改Android PopupMenu宽度