9月 152017
 

我们可以使用adb shell dumpsys 来查看android设备中的相关服务信息,dumpsys后的参数为相关服务的名称。 比较常用的如:

那么我们如何查看其他我们可以dump的服务名称呢?答案是使用如下的命令即可获得android设备中的所有运行的服务列表

如下,是在我三星手机上运行命令获得的服务列表:

 

阅读全文
2月 202017
 

1.什么场景下需要使用HandlerThread 1). 比较耗时,不易于放在主线程中执行的操作(不考虑第2点使用其他线程方式也可以) 2). 有多个耗时操作需要后台执行(如果不嫌麻烦也可以考虑使用多个TThread) 2.HandlerThread的使用步骤 1). 创建HandlerThread对象 2). 执行start方法,启动HandlerThread的Looper循环 3). 在主线程中创建Handler对象并引用HandlerTherad的looper 4). 在Handler对象中加入各种消息的处理 5). 在需要的时候给步骤3创建的Handler对象发送消息 6). 不再需要

阅读全文
1月 092017
 

  今天写一个shape的drawable资源,实心部分是用放射形的渐变填充的,gradientRadius属性使用的百分比值来设定,如下代码:

  在小米手上运行正常,但是在三星Note3上报java.lang.IllegalArgumentException: radius must be > 0错误,经在网上搜索后将100%改成100%p就没问题了,修改后的代码如下:

 

阅读全文
1月 072017
 

  Switch组件使用了android:track属性,设置了背景图片,但是宽度显示不全,经查track属性设置的图片并未参与Switch的高度的计算,所以当track图片的高度过高时就会显示不全.   解决办法: 给Switch组件设置一个大的字体大小值,比如textSize=”25dp”,这样整体高度就会变大  给Switch设置一个大的padding值   相比之下博主认为第一个方法比较合理一些  

阅读全文
8月 022016
 

1.首先要有一个Long型的主键 2.该主键的初始值要赋值为null   如下:

原理是: 当id的初始值设为null时,执行insert into 语句时,id的值也为null,然后数据库系统会自己计算这个,如下这个sql语句

 

阅读全文
4月 172016
 

  如果您的Android应用针对多个语言,那么您需要配置多个语言版本的strings.xml资源文件。   原来在Eclipse中我们都是在多个strings.xml文件中切换来翻译字符资源文件,但是在Android中提供了Translations Editor工具,让我们可以很方便的编辑多语言的资源文件。   打开Translations Editor的方法: 在Android Studio中打开项目 在工程目录中打开res\strings.xml 在strings.xml文件右键选择“Open Translations Editor” 现在就可以在这个工具中编辑您的字符串资源了

阅读全文
3月 182016
 

  LocalBroadcastManager是support v4包里提供的一个组件,它只负责进程内发送广播和接收消息,它的优点如下: 广播消息只在进程内发送,不会造成数据泄露 只接收进程内的广播消息,不会有广播方面的安全问题 比全局的广播效率更高   LocalBroadcastManager的实现原理:我们通常都是通过LocalBroadcastManager.getInstance(Context context)来获得它的实例的,通过查看LocalBroadcastManager的代码,笔者发现它的实现并不复杂,它其实是一个单实例对象,那么我们在整个进程内使用的其实是一个LocalB

阅读全文

Android面试题总结

 分类:Android, Java 阅读 (505)  No Responses »
2月 242016
 

一、Java部分 1.关于被私有访问控制符private修饰的成员变量,以下说法正确的是? A) 可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B) 可以被两种类访问和引用:该类本身、该类的所有子类 C) 只能被该类自身所访问和修改    D) 只能被同一个包中的类访问 答案:C。 private定义的属性只能在类本身中使用,任何地方的子类都是不能访问的。 2. 以下声明合法的是 A) default String s;    B) public final static native int w();    C) abstract double d; D) ab

阅读全文
7月 242015
 

  在Android4.0之前,服务是可以在开机时自动运行的,但是在Android4.0以后,为了安全起见,防止一些非法的后台服务在开机后自动运行,用户必须打开一个Activity后才可以启动服务。   那么我们想想,如果我们不是做一些非法的操作是否可以有其他的变通方法解决这个问题呢。   如果是要更新桌面小组件的数据,那么我们可以在小组件服务创建时启动数据更新服务,如下:

 * Android4.0之前设置服务开机自启动的方法   首先AndroidManifest.xml中加入 [crayon-5b023a70d7d8c33

阅读全文
7月 232015
 

话不多说,先上代码: 首先在AndroidManifest.xml中申请WakeLock权限

然后在你需要保持系统一直运行的地方写下面的代码:

原理: PowerManager,手机的电源管理相关组件。 WakeLock,用于程序控制是否一直保持手机运行状态组件。WakeLock的保持运行共包括四个类型,最好使用比较低的级别,以降低手机电池的使用量。 Flag值 CPU 屏幕 键盘 PARTIAL_WAKE_LOCK On* Off Off SCREEN_DIM_

阅读全文