- 浏览: 123403 次
- 性别:
- 来自: 福州
最新评论
-
xi_bei_feng:
你好,使用sendDataMessage()发送短信,用手机进 ...
Android短信编解码方式 -
李晓进:
有个疑问想问一下,安卓的短信发送时内容的编码方式是固定的吗?能 ...
Android短信编解码方式 -
hety163:
niubility~
Android Dimension转换算法原理分析 -
Tyler3419:
你好,大神,能不能封装出一个方法,输入一个string的dim ...
Android Dimension转换算法原理分析 -
snowdream:
分析很透彻,谢谢分享。
Android Dimension转换算法原理分析
文章列表
转自http://blog.sina.com.cn/s/blog_6610da3901012doz.html
A Comparison of java.net.URLConnection and HTTPClient
Since java.net.URLConnection and HTTPClient have overlappingfunctionalities, the question arises of why would you use HTTPClient.Here are a few of the capabilites and tradeoffs.
1.概念 ...
在Android4.0源码自带的Launcher中,拖拽是由DragController进行控制的。
基本流程是相应的View在检测到用户操作后进行判断,若可以触发拖拽,则设置自身的相应状态,然后将待拖拽对象的Bitmap对象、当前位置、拖拽源、待拖拽对象等信息传给DragController的startDrag方法启动拖拽。接下来,DragLayer的onInterceptTouchEvent拦截触屏事件,将其转到DragController的onTouchEvent
接着之前的《一种异步加载资源的方法(源于SDK文档)》,SDK文档在《Caching Bitmaps》中介绍了内存缓存与磁盘缓存的使用。
大家都知道,现在的手机屏幕分辨率是越来越大了,虽然之前我们介绍了异步加载图片的方法。但要知道,一个应用可用的内存是有限的。我们不可能将所有的内存都用来存储图片,也不可能为了内存而每次取图片时都上网下载(流量费是很贵滴,而且下载也很耗电啊)。
因此,对于已下载的图片,我们需要在本地维持一个缓存。
内存缓存
LurCache是一个内存缓存类(Android3.1引入,通过v4的支援包,可以在API Level 4以上使用)。它使用一个强连接的Linked ...
今天闲着有空,看了下SDK文档,发现里面有一篇《Processing Bitmaps Off the UI Thread》中特地介绍了异步加载图片的思路。特地记录一下。
大家都知道,加载图片是很费时的,尤其是从磁盘或网络上获取的时候。
因此,我们在设计 ...
最近在做深度主题,要实现类似小米那种在主题包中设置dimension值,然后在系统中替换原值的功能。
特地研究了一下Android系统中dimension类型的值的存储方式以及相关的转换算法。
在Android中,我们可以在values文件夹中定义各种资源,其中有一种就是dimension。
dimension是一个包含单位(dp、dip、sp、pt、px、mm、
做了两年多Android应用开发了,期间也实现过好几种主题切换的方式。趁着最近有空,总结一下。
所谓的主题切换,就是能够根据不同的设定,呈现不同风格的界面给用户,也就是所谓的换肤。
1、将主题包(图片与配置)存到SD卡上(可通过下载或手动放入指定目录),在代码里强制从本地文件创建图片与配置文字大小、颜色等信息。
2、Android平台独有的主题设置功能,在values文件夹中定义若干种style,在Activity的onCreate中使用setTheme方法设置主题。
3、将主题包做成APK的形式,使用远程Context的方式访问主题包中的资源。
4、类似小米的深度主题,修改fra ...
今天看到一篇有关字符串逆序的各种实现算法的文章,里面有一种不使用临时变量的字符交换算法把我震惊了。
上网搜了下,发现百度百科里就有这么一段:
xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。
x <- x # y
y <- x @ y
x <- x @ y
执行了第一句后x变成了x # y。那么第二句实质就是y <- x # y @ y,由于#和@互为逆运算,那么此时的y变成了原来的x。第三句中x实际上被赋值为(x # y) @ x,如果#运算具有交换律,那么赋值后x就变成最初的y了。 ...
转自http://www.cnblogs.com/likebeta/archive/2012/06/21/2558180.html
什么是许可协议?
什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人 ...
App Widget是一种可以被放在其他应用中(如Launcher)并接收周期性更新的应用视图。这些视图在UI上就表现为Widget,并且你可以同App Widget Provider一起发布。
对于能够包含其他App Widget的应用程序组件,称为App Widget Host。
基本 ...
要获取可执行应用的列表(Launcher点中间键后进入看到的那个),就需要用到PackageManager。
首先,使用PackageManager解析列表
PackageManager pm = getPackageManager();
// 解析所有可执行的应用
Intent it = new Intent(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> lai = pm.queryIntentActivities(it, 0);
然后,就可以 ...
主要思路来自网络!
1、需要源码才能编译
2、修改项目的Android.mk文件,添加
LOCAL_CERTIFICATE := platform
3、AndroidManifest.xml中添加权限
3.1 manifest标签中添加
android:sharedUserId="android.uid.system"
3.2 使用权限
<uses-permission android:name="android.permission.SHUTDOWN"/>
4、java代码 ...
数据表
MMS模块总共包含17张表:addr、android_metadata、attachments、canonical_addresses、drm、part、pdu、pending_msgs、rate、raw、sms、sr_pending、threads、words、words_content、
Android短信编码在Framework层实现。
对于普通短信,其SmsHeader部分为空。
Gsm:
Gsm中,对于长短信,使用了SmsHeader类进行描述。SmsHeader.ConcatRef描述了长短信的refNumber(对于同一个短信,相同,使用SmsDispatcher.getNextConcatenatedRef方法获取一个索引值,将其或上0x00FF),seqNumber(分段序列号,从1开始),msgCount(分段数量)。然后设置isEightBits为假(为了支持不同长度REFERENCE的短信,8位则REFERENCE为8位,否则为16位)。
短信头的 ...
短信部分:短信的发送,Framework部分从SmsManager的sendTextMessage(普通短信,无分段)与sendMultipartTextMessage(长短信,已分段)开始,一直到RIL。主要涉及到的类有。SmsManager、Isms、IccSmsInterfaceManager、SMSDispatcher、ImsSMSDispatcher、GsmSM ...
下图为ComposeMessageActivity中confirmSendMessageIfNeeded部分的信息发送流程。主要以接收者有效性的确认为主,然后转向sendMessage方法进行发送。
ComposeMessageActivity.sendMessage从下图可以看出,在这个方法中,主要做的事是确认手机状态的有效性。最终调用WorkingMessage的send方法进行信息的发送。
WorkingMessage.send从下图可以看出,在本方法中,对于不同类型的消息,分别调用不同的方法对其进行处理。并对彩信进行一些简要的预处理。 短信部分:WorkingMessa ...