- 博客(359)
- 资源 (14)
- 收藏
- 关注
原创 AndroidManifest.xml中android:name功能介绍
大部分android程序员一把呢都是使用默认的Application,在Application内部没有使用过android:name属性。下面详细说一下过android:name属性; android:name属性——是用来设置所有activity属于哪个application的,默认是android.app.Application。当然也可以自己定义一个类,例如:pub
2017-10-25 16:54:23
28529
1
原创 Android <activity-alias> 的用法解析
1. 问题 最近在公司业务应用开发中有这样一个需求:需要改变HomeActivity (launcher 的入口) 的名称为FirstActivity,这么改一下很简单,那就改吧,按理说也没有什么大碍。可是在App 发布后在某些手机上版本升级后,点击桌面icon 竟然无法启动App直接崩溃。后来追述Log才搞清楚原因:某些手机安装的launcher 会cache App 的历史信息,
2017-10-20 15:29:15
1156
原创 Android基站定位详解
本文主要介绍android基站定位的基本思路,介绍了一些TelephonyManager中用到方法。最后简单说明google定位服务与android提供参数之间的联系。
2017-10-20 15:23:18
6261
1
原创 高通Android平台 OTA差分包的生成方法
1、首先高通平台的编译流程与android原生态的编译流程一样,需要经历以下几步: a. source build/envsetup.sh; b. lunch 选择项目 c. make -j24 编译完之后 4.make otapackage 5. mkdir OTA 然后进行烧录,把out\target\product\msm8909
2017-10-17 18:10:46
4133
原创 Androidstudio 出现 Call requires API level 24(current minimum is 15):android.icu.util.calendar 问题时的办法
Eclipse中导入项目找不到android.icu.util.calendar 问题时的办法1、设置minSDK,在AndroidManifest中添加minSdkVersion设置最小版本列uses-sdk android:minSdkVersion="23">uses-sdk>2、导入 java.util.Calendar;代替android.icu.util.calenda
2017-10-14 11:05:38
6080
翻译 java类加载器的工作原理剖析
Java类加载器的作用就是在运行时加载类。Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类加载器加载的类。单一性原理是指仅加载一个类一次,这是由委托机制确保子类加载器不会再次加载父类加载器加载过的类。正确理解类
2017-10-13 20:11:13
425
原创 java.lang.NoClassDefFoundError错误解决方法
1. 简述 在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的。我们往往
2017-10-13 16:49:37
26617
1
原创 对Class.forName()用法详解
Class.forName()用法详解 一.主要功能:Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段下面,通过解答以下三个问题的来详细讲解下Class.forName()的用法。一.什么时候用Class.forName()?先来个热身,给你
2017-10-13 16:41:17
605
原创 android6.0/7.0打开系统权限
首先找到system\extras\su\目录,然后打开su.c文件,找到main函数,如下:int main(int argc, char** argv) { uid_t current_uid = getuid(); if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "not
2017-04-01 11:07:49
1548
1
原创 Android中IPC的几种方式详细分析与优缺点分析
Android进程间通信(IPC:Inter-Process Communication)的几种主要方式如下1.使用Bundle ----> 用于android四大组件间的进程间通信android的四大组件都可使用Bundle传递数据 所以如果要实现四大组件间的进程间通信 完全可以使用Bundle来实现 简单方便 2.使用文件共享 ---->用于单线程读写这种
2017-03-17 10:07:38
3800
原创 android IPC通信方式简述
andoid IPC方式主要有以下几种:1.bundle :简单易用 但是只能传输Bundle支持的对象 常用于四大组件间进程间通信 2.文件共享:简单易用 但不适合在高并发的情况下 并且读取文件需要时间 不能即时通信 常用于并发程度不高 并且实时性要求不高的情况3.AIDL :功能强大 支持一对多并发通信 支持即时通信 但是使用起来比其他的复杂 需要处理好
2017-03-17 10:02:57
1557
原创 java代码中线程安全级别 简述
java是支持多线程编程的语言,java中提供了很多类,如果把这些类的实现按照线程安全级别来排序的话,则由强到弱主要可以分为以下几个级别1、 绝对线程安全在任何环境下,调用者都不需要考虑额外的同步措施,都能够保证程序的正确性。这个定义要求很严格,java里面满足这个要求的类比较少,对于实现jsr133规范(java内存模型)的jdk(一般指jdk5.0之上),一般的不变类都是满足绝地线
2017-03-15 16:27:33
1154
原创 java中volatile关键字解说
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized
2017-03-15 13:52:42
741
原创 Android 严苛模式(StrictMode)详解
Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅将警告计入日志,让
2017-03-15 13:29:14
1408
原创 简述 I18N、L10N的区别
I18N--是“Internationalization”的缩写,由于“Internationalization”单词较长,所以为了书写简便,通常缩写为“I18N”。中间的18 代表在首字母“I”和尾字母“N”之间省略了18 个字母。单词“Internationalization”翻译成中文是“国际化”的意思-是使产品或软件具有不同国际市场的普遍适应性,从而无需重新设计就可适应多种语言
2017-03-15 10:59:42
2205
原创 Android获取分享应用列表
如果在应用的AndroidManifest.xml中含有 ACTION_SEND 属性,那就证明该应用可以供第三方应用进行调用分享,那怎么获取函数该属性的分享列表了,这对我们做应用的非常有用;最近在做该功能,自己也做了下自定义的分享列表,用PopupWindow的方式弹出。 1、布局:popup_share.xml[html] view plainco
2016-07-23 16:53:00
3403
转载 关于海量数据查找排序问题
问题:假设一个文件中有9亿条不重复的9位整数,现在要求对这个文件进行排序。 一般解题思路: 1、将数据导入到内存中 2、将数据进行排序 (比如插入排序、快速排序) 3、将排序好的数据存入文件 难题: 一个整数为4个字节 即使使用数组也需要900,000,000 * 4byte = 3.4G内存 对于32位系统,访问2G以上的内存非常困难,而且一般设备也没有这
2015-10-27 16:33:09
5626
原创 Cloud端消息服务推送介绍
本文介绍在Android中实现推送方式的基础知识及相关解决方案。推送功能在手机开发中应用的场景是越来越多了,不说别的,就我们手机上的新闻客户端就时不时的推送过来新的消息,很方便的阅读最新的新闻信息。这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告。本文就是来探讨下Android中实现推送功能的一些解决方案,也希
2015-10-27 15:40:29
1969
原创 java向文件中追加内容与读写文件内容源码
向文件尾加入内容有多种方法,常见的方法有两种:RandomAccessFile类可以实现随机访问文件的功能,可以以读写方式打开文件夹的输出流public void seek(long pos)可以将读写指针移到文件尾,参数Pos表示从文件开头以字节为单位测量的偏移位置,在该位置文件指针。public void write(int pos)将数据写到读写指针后面,完成文件的追加。参数po
2015-08-19 15:45:49
2117
翻译 Android 4.2蓝牙介绍
Android 4.2蓝牙介绍蓝牙一词源于公元十世纪丹麦国王HaraldBlatand名字中的Blatand。Blatand的英文之意就是Blue tooth。这是因为这位让丹麦人引以为傲的国王酷爱吃蓝莓以至于牙龈都被染成蓝色。由于Blatand统一了丹麦和挪威,所以,作为无线通信技术的一种,蓝牙技术之所以取名Bluetooth可谓志向远大。不过,在以Android为代表的智能机出现以前,
2015-04-10 10:26:29
2472
原创 在Android手持设备与穿戴设备之间通过蓝牙传递assert(如图片)
开发android wear程序时,经常需要将图片通过Assets 蓝牙传输。1.创建asset,使用create...()方法,比如传递一个Bitmap传输如下[java] view plaincopyprint?private static Asset createAssetFromBitmap(Bitmap bitmap) {
2014-12-17 09:57:25
2152
原创 android中的图形图像处理-如访问图片drawable
一、如何获取 res 中的资源数据包package:android.content.res主要类:Resources其主要接口按照功能,划分为以下三部分: getXXXX() 例如: int getColor(int id) Drawable getDrawable(int id) String getString(int id) 直接获取res中存放
2014-12-16 20:34:48
2253
原创 java socket编程解析
一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为
2014-12-16 20:27:23
1575
原创 Android 通过调用谷歌语音系统接口弹出语音识别对话框的方法 .
现在app的开发进程会集成一些语音识别功能,而一般开发者是不具备自己开发一套语音识别引擎的,因此大多数情况是选择一个已经成熟的语音识别引擎SDK集成到自己的app中。通常情况下,这种集成分两种,一种是直接调用SDK为开发者设计好的弹出框,开发者不需要开发识别交互界面;还有一种是开发者只利用SDK提供的语音识别服务,自己开发一个属于自己的交互设计。本文介绍最简单直接调起弹出框的方法。首先
2014-12-12 11:14:50
3855
翻译 Android Wear 用于发送与同步数据的数据类型与接口概述
Android Wear数据层的API,是google play service的一部分,为您的手持设备和可穿戴式应用程序的通信通道。 Api包括一系列数据对象,可以让系统通过监听器和线路通知app数据层重要的事件。以下是几种对象类型。Data Item提供数据存储用于手机和wear的自动同步。Messages消息API可以实现fire-and-forget模式,如在wear中
2014-12-12 09:19:15
2943
原创 Android Wear带你理解跨设备的Android 技术体系
如果给 Android 撰写一个编年史,那每年的 Google I/O 都是一个新的 Android 年的开启,它预示着 Android 在后续一年新的方向和趋势。2014 年的 Google I/O,新版本的 Android L 揭开面纱,它用 Material Design 重新定义了 Android 的交互方式。这种交互方式不仅适用于 Android 手机、平板等移动设备,也会延续到浏览
2014-12-11 18:01:58
5304
转载 Android4.4电池管理
一、概述 Android4.4的电池管理功能用于管理电池的充、放电功能。整个电池管理的部分包括Linux电池驱动、Android电池服务、电池属性和参数、电池曲线优化四个部分。 Linux电池驱动用于和PMIC交互、负责监听电池产生的相关事件,例如低电报警、电量发生变化、高温报警、USB插拔等等。 Android电池服务,用来监听内核上报的电池事件,
2014-12-11 16:35:53
2276
翻译 Android 访问Android Wear数据层Api——同步Data Items .
Data Items是用于同步手机和wear的数据接口,一个Date Items通常包括下面几部分:Payload一个字节数组,你可以设置任何需要的数据类型,允许进行对象的序列化与反序列化,大小不能超过100k。Path唯一的字符串,必须以正斜杠开始(例如,“/path/to/ data”)通常不需要直接实现DataItem,只需要:1、创建PutDataRequest
2014-12-10 18:05:17
2251
转载 跨进程调用服务
概述 Android系统中的各应用程序都运行在各自的进程中,进程之间通常是无法直接交换数据的。 Android提供了跨进程调用Service的功能,称为AIDL,AIDL全称:android interface define language,Android接口定义语言。 ADIL相当与两个进程通信的协议,通过这个协议对进程间的通信进行了规范。按照该规范编写代码即可实现进程间的
2014-11-04 15:17:43
3149
原创 使用绑定控制Service
概述 在Activity绑定Service时,通过返回一个Binder子类的对象(该子类中定义了操作Service的方法)。这样在Activity中,通过调用该对象的方法,实现对Service的控制。 操作步骤 步骤1、创建Service的一个子类,在该类中定义一个内部类,例如MyBinder,该类是Binder的子类。 步骤2、在内部类中定义若干操作Service的方法。
2014-11-04 15:04:29
1364
原创 用BroadcastReceiver控制Service
概述 通过在Service类的内部定义BroadcastReceiver对象,接收外部发送的广播,也可以达到控制Service的目的。 操作步骤 步骤1、自定义Service的子类。 步骤2、在该类中定义一个内部类,该类是BroadcastReceiver类的子类。 步骤3、在Service类的onCreate方法中注册该广播接收者类,并设置action值。 步骤4、在Ac
2014-11-04 14:54:11
2313
原创 Android 中 Notification 与状态栏信息
Notification与Toast都可以起到通知、提醒的作用。但它们的实现原理和表现形式却完全不一样。Toast其实相当于一个组件(Widget)。有些类似于没有按钮的对话 框。而Notification是显示在屏幕上方状态栏中的信息。还有就是Notification需要用NotificationManager来管理,而Toast只需要简单地创建Toast对象即可。下面来看一下创建并显示一个
2014-11-04 14:38:02
1335
原创 Android 调试 中 conversion to dalvik format failed with error 1的解决办法汇总
其他关于ERROR:Conversion to Dalvik format failed with error 1解决方法汇总:1、Eclipse错误:Conversion to Dalvik format failed with error 1链接地址:http://www.eoeandroid.com/thread-65537-1-1.html2、conversion to
2014-11-04 14:31:09
1624
原创 HttpClient4.0杂谈
****************************HttpClient4.0用法*****************************1、初始化HttpParams,设置组件参数 //HttpParams接口代表一个不可改变值的集合,定义一个组件运行时行为。代表一个对象集合,该集合是一个键到值的映射。//HttpParams作用是定义其他组件的行为,一般每个复杂
2014-11-04 14:28:50
1157
原创 Android 中的长度单位详解(dp、sp、px、in、pt、mm)具体解释与换算
在写代码或者开发过程中 看到有很多网友不太理解 dp、sp 和 px 的区别:现在这里介绍一下 dp 和sp。dp 也就是 dip。这个和 sp 基本类似。如果设置表示长度、高度等属性时可以使用 dp 或 sp。但如果设置字体,需要使用 sp。dp 是与密度无关,sp 除了与密度无关外,还与 scale 无关。如果屏幕密度为 160,这时dp 和 sp 和 px 是一样的。1dp=
2014-06-25 14:28:03
12754
原创 Android Handler的使用 --- 循环执行更新UI显示
Android 引进了Handler 这个特殊的类,可以说它是Runnable和Activity交互的桥梁,所以我们只要在run方法中发送Message,而在Handler里,通过不同的Message执行不同的任务。 所以我们修改后的代码如下: package com.android.tutor;import java.util.Timer;import java
2014-06-25 11:24:26
8225
原创 Android自定义对话框(Dialog)位置,大小(Service中同样适用)
import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.Gravity;import android.view.Window;import android.view.WindowManager; public class Dial
2014-06-24 19:54:05
1667
原创 Android Button onClick事件的三种写法
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class AActivity extends Activity { /**
2014-06-09 13:48:10
11762
原创 Android workscreen定制分析
Launcher workspace 分析简介 workspace,那有许多的厂商会定制自己的主页,要么在上面放置一些特殊的应用的widget,要么就是放置一些应用的图标,这些定制比较简单的,但是怎么放置本文会做一些简介。如果在workspace上放置一些比较复杂的ui,怎么来做了?那有的童鞋肯定会说用widget来做啊,大家都知道widget的实现都是放在对应的应用中,而且,wid
2014-01-23 16:36:33
1996
原创 android4.2.2 启动器界面两边的渐变的去除方法
android4.2 Launcher2主界面效果如下图:如图所示,左右两边有黑色的渐变,看起来感觉怪怪的。现提供一种去掉它的方法。步骤1打开文件launcher.xml,将下述代码片段中的android:background属性去掉。 xmlns:android="http://schemas.android.com/apk/res/android"
2014-01-16 15:23:26
2081
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人