
Android
文章平均质量分 80
wulianghuan
IT秀才
展开
-
smali文件语法
Dalvik opcodes表中的VX值表示的Dalvik寄存器。根据不同的指令,16,256或64K寄存器可以访问。对long和double值的操作使用两个寄存器,例如在V0的注册解决占地V0和V1的寄存器双重价值。布尔值存储真正的为1和0为假。被翻译成整数运算的布尔操作。HIG-endian格式中所有的例子,如0F00 0A00 0F,00,0A,00顺序编码。原创 2014-01-03 19:26:58 · 3977 阅读 · 0 评论 -
ListView:长按弹出上下文菜单(ContextMenu)
有两种方法实现长按弹出上下文菜单:方法一:1)注册上下文菜单/** * 上下文菜单演示Demo * * @author CodingMyWorld 2011-8-27 下午03:22:39 */publicclass SampleContextMenuActivity extends ListActivity { privatestaticfin原创 2013-11-04 14:45:20 · 16157 阅读 · 2 评论 -
sqlite字段类型
改了点东西,因为想着要把项目优化,但是每条数据如果都存到单一数据库中,会造成以后的数据越来越大,怎么办?于是我想到了,可以考虑将单类数据存储到sqlite中,既可以备份,又可以用作缓存和其他作用。所以就想到了sqlite的一些特性,当然,花了大量的时间测试代码,即,一份代码自动生成不同的数据库,可以自由控制读取哪个库哪个表。基于YII而已。写的有点挫,但现在这样的好处是可以不改动原有任何一原创 2013-09-06 10:31:12 · 10778 阅读 · 1 评论 -
使用意图在Activity之间传递数据小插曲__传递对象
Android中Intent中如何传递对象有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,通过一个简单的例子来给大家讲解一下。 工程结构图:原创 2013-02-16 17:26:44 · 4426 阅读 · 2 评论 -
Keeping Your App Responsive
It's possible to write code that wins every performance test in the world, but still feels sluggish, hang or freeze for significant periods, or take too long to process input. The worst thing that can翻译 2013-06-23 20:41:13 · 1221 阅读 · 0 评论 -
关于android使用dexjar反编译后的classes.dex.dex2jar.jar为什么jd gui打不开?
运行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar然后运行JD-GUI工具,打开jar文件,看不到源代码,窗口是空白的……怎么破??在网上搜了一些办法,有些说换个反编译工具,或者其他的其实解决这个问题很简单,问题就是因为生成jar的时候就失败了, dex2jar.bat classes.dex 这一步没有成功,那是因为我的de原创 2013-06-06 16:26:08 · 8911 阅读 · 3 评论 -
Handler Looper Message源码研究
概述 Looper是消费者,Handler是生产者(同时Looper消费后,也会通知Handler),MessageQueue是消息队列,队列的实现方式是链表,Message是链表的一个节点。 我们的程序基本上之和Handler打交道。线程Thread的线程变量ThreadLocal中,存放着这个线程的Looper; Looper在初始化时,会新建一个消息队列Message原创 2013-06-04 15:28:49 · 2304 阅读 · 1 评论 -
ContentProvider内容提供者(二)
本篇学习一下监听ContentProvider的数据变化:如果ContentProvider的访问者需要知道ContentProvider中的数据发生变化,可以在ContentProvider发生数据变化时调用getContentResolver().notifyChange(uri,null)来通知注册在此URI上的访问者,如果ContentProvider的访问者需要得到数据变化通知,必须原创 2013-05-07 22:24:14 · 2426 阅读 · 0 评论 -
ContentProvider内容提供者(一)
作为四大组件之一的ContentProvider,其作用是对外共享数据,相对文件和数据库存储来说,它的好处是统一了数据访问方式。先来看看基本的介绍:Class OverviewContent providers are one of the primary building blocks of Android applications, providing cont原创 2013-05-05 21:55:52 · 2822 阅读 · 0 评论 -
android 获取屏幕高度和宽度 的方法
我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即可获取屏幕的尺寸。 在一个Activity的onCreate方法中,写入如下代码: DisplayMetrics metric = new DisplayMetrics(); getWindowM原创 2013-04-27 01:41:47 · 2756 阅读 · 0 评论 -
Android解析JSON方式(一)服务器端生成JSON数据
JSON数据格式的定义: JSON的全称是:JavaScript Object Notation,是一种轻量级的数据交换格式。它构建于两种结构: 1、"名称/值" 对的集合(a collection of name / value pairs)。不同的语言中,它被理解为对象(Object),记录(Record),结构(struct),字典(Dictionary)原创 2013-03-02 21:47:22 · 6905 阅读 · 9 评论 -
android获取APK签名信息及MD5指纹
1.获取APK的签名信息private String showUninstallAPKSignatures(String apkPath) { String PATH_PackageParser = "android.content.pm.PackageParser"; try { // apk包的文件路径原创 2014-01-17 09:53:27 · 72322 阅读 · 13 评论 -
APK安装过程及原理详解
PackageInstaller 原理简述 应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。 Androi原创 2014-02-21 14:00:51 · 3688 阅读 · 2 评论 -
Android studio中正确引入so文件的方法
相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式。Android studio中默认使用的是gradle编译方式,与ADT编辑方式不一样,那么so文件应当如何引入呢?其实很简单。这里以集成JPUSH为例,看一下so文件如何引入到编译环境,最终到JNI直接可以调用该so文件。首先,在我原创 2015-03-23 18:23:42 · 173655 阅读 · 44 评论 -
Android省市区三级联动滚轮选择(真实项目中提取出来的组件)
最近项目要做一个,类似淘宝手机客户端的,选择收货地址的三级联动滚动选择组件,下面是它的大致界面截图:在IOS中有个叫UIPickerView的选择器,并且在dataSource中定义了UIPickerView的数据源和定制内容,所以用只要熟悉它的基本用法,要实现这么个三级联动滑动选择是挺简单的。 言归正传,今天讨论的是在Android里面如何来实现这么个效果,那么如何实现呢原创 2014-11-27 18:22:08 · 120751 阅读 · 139 评论 -
Android 静默安装(自动安装)和静默卸载的实现方法
目前很多应用市场,做了静默安装的功能,静默安装就是无声无息的在后台安装apk,没有任何界面提示。智能安装就是有安装界面,但全部是自动的,不需要用户去点击。首先强调两点:静默安装必须要root权限 智能安装必须要用户手动开启无障碍服务。原创 2017-02-22 16:35:20 · 20314 阅读 · 6 评论 -
Android7.0新特性,及Android N适配
新特性部分Android 7.0 Nougat 提供新功能以提升性能、生产效率和安全性,主要新增了以下的新特性和优化:一、新的NotificationAndroid N 增加了许多新的notifications API,进行了重新的设计,引入了新的风格。模板更新: 开发者将能够充分利用新模板,只需进行少量的代码调整。消息样式自定义: 新增自定义样式、消息回复、消息分组等更加灵活。原创 2017-03-01 17:11:30 · 9626 阅读 · 1 评论 -
Android判断应用在前台还是后台运行(判断应用前后台切换)
我们的应用要获取后台运行的app的包名,主要是getRunningTasks()方法的调用,经过测试在android 2.2 到 4.4的版本都运行的很好,但是在Android 5.0 Lollipop. 中获得不到,无法得到真实的后台运行app名称,在Android 5.0 Lollipop中获得的名称是 'Launcher3',我使用过的模拟器是 Genymotion Emulato原创 2015-06-03 16:53:46 · 14922 阅读 · 11 评论 -
招财进宝手势锁,Android手势密码的实现
这几个月都是在做招财进宝项目,一个理财下载地址:http://8.shengpay.com/。招财进宝手势锁,Android手势密码的实现。原创 2014-11-03 17:01:18 · 23868 阅读 · 42 评论 -
listView多个viewType,listView多个类型的item
最近在项目中需要对listview中的数据进行分组,我构思的基本原理就是,在适配器Adapter的getView()方法中,根据当前item类型,分别加载不同的布局,这样是很容易实现的,想必大家都很清楚这个小东西。但是问题是,这样的代码写下来listview在数据很多时,上下滑动会很卡,于是乎就想到了用viewHolder来进行缓存, 难度就在对不同的item进行不同的缓存。下面是我实现的效果原创 2013-11-25 22:31:44 · 6645 阅读 · 7 评论 -
判断Listview滑动到了最底部(且最后一个item完整显示)
记录下代码:listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public原创 2016-09-13 14:57:34 · 8853 阅读 · 1 评论 -
伪锁-微信隐私锁
伪锁,帮助亿万微信用户解决隐私安全问题,优秀的界面设计,卓越的用户体验,有趣的微信伪装锁,谁动谁知道,看了只有好奇和纳闷,不仅仅是保护隐私哦,最重要的是,我们做到保护过程更自然,用伪装的方式让对方不觉的是密码锁,还避免了尴尬呢,来动动试试?保护微信隐私,我最行!应用场景:" 你干嘛看我微信内容,被偷翻微信了?" 亲朋好友的小朋友无意把你微信内容转发?" 同学聚会总有人拿你手机窥微信隐私?以上这些问题,伪锁会帮你漂亮的解决!原创 2015-02-04 18:04:39 · 5313 阅读 · 2 评论 -
关于在TextView中设置DrawableLeft不显示的问题
xml中的textView:<TextView android:id="@+id/bookTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android原创 2014-12-03 17:39:36 · 9996 阅读 · 1 评论 -
Android out of memory 彻底解决Android因加载多个大图引起的OutOfMemoryError,内存溢出的问题
最近因为项目里需求是选择或者拍摄多张照片后,提供滑动预览和上传,很多照片是好几MB一张,因为目前的Android系统对运行的程序都有一定的内存限制,一般是16MB或24MB(视平台而定),不做处理直接加载的话必然会报OOM (Out Of Memmory)。网上有很多解决android加载bitmap内存溢出的方法,我总结了一个通用的方法,下面是我从的开发案例抽取出来的代码:我在项目中原创 2013-09-11 01:08:23 · 39952 阅读 · 35 评论 -
setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
更换radiobutton中的图片在xml中很好设置,但对于初学者如何在代码中设置还是不容易找的。没法子,通过看原版api找到两个方法,setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds。下面交给大家方法。第一个方法:setCompoundDrawablesWithIntrinsicBounds(Drawable原创 2014-04-24 16:30:52 · 63147 阅读 · 10 评论 -
Android程序的签名保护及绕过方法
随着Android 市场的扩大,各类盗版、破解、打包党纷纷涌现,其使用的手法无非是apk _> smali ->修改代码 ->重打包签名,为对抗此类技术,广大程序员挖掘了Android平台特有的保护技术:签名校验 1、JAVA代码本地签名校验Android要求安装到手机上的APK文件必须有签名,而理论上开发者的签名他人是无法得到的(证书保护是另外一回事),所以原创 2014-03-29 15:55:49 · 23025 阅读 · 5 评论 -
Android学习之广播事件处理
什么是广播? 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。我们拿广播电台来做个比方。我们平常使用收音机收音是这样的:许许多多不同的广播电台通过特定的频率来发送他们的内容,而我们用户只需要将频率调成和广播电台的一样就可以收听他们的内容了。Android中的广播机制就和这个差不多的道理。电台发送的内容是语音,而在Android中我们要发送原创 2013-03-01 16:31:46 · 5634 阅读 · 0 评论 -
解决ScrollView中嵌套ListView滚动效果冲突问题
在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据。起初我以为是样式的问题,一直在对XML文件的样式进行尝试性设置,但始终得不到想要的效果。后来在网上查了查,ScrollView和ListView两个View都有滚动的效果,在嵌套使用时起了冲突,一般不建议两者套用。 下面说说具体解决方案。方案的主要思路就是根据ListView子项重置其高度。解决原创 2013-03-01 23:32:36 · 44638 阅读 · 5 评论 -
Android学习之Http使用Post方式进行数据提交
我们知道通过Get方式提交的数据是作为Url地址的一部分进行提交,而且对字节数的长度也有限制,与Get方式类似,http-post参数也是被URL编码的,然而它的变量名和变量值不作为URL的一部分被传送,而是放在实际的HTTP请求消息内部被传送。可以通过如下的代码设置POST提交方式参数: HttpURLConnection urlConnection = (HttpURLConnecti原创 2013-03-01 15:59:45 · 26751 阅读 · 3 评论 -
Android解析JSON方式(二) 客户端解析SON数据
在上一篇中搭建了服务器端的程序,这篇我们来建立一个Android项目,来访问服务器取得JSON格式数据,并解析JSON数据格式,输出到日志控制台。我们建立的项目目录结构如下:运行的界面截图:当我们分别点击四个按钮,可以看到控制台的输出日志:以下是源代码:main.xml<LinearLayout xmlns:androi原创 2013-03-02 23:19:47 · 13142 阅读 · 3 评论 -
Android之UI学习篇九:使用TabHost实现卡片选项菜单
TabHost是一个装载选项卡窗口的容器,实现分模块显示的效果。像新浪微博客户端、微信客户端都是使用tabehost组件来开发的。TabHost的组成:|---TabWidget:实现标签栏,可供用户选择的标签集合;|---FrameLayout:实现显示内容的帧布局.TabHost有两种实现方式:一、在布局文件中定义TabHost 1、在配置文原创 2013-02-18 20:11:39 · 3606 阅读 · 1 评论 -
Android之UI学习篇十:使用TabHost实现微博客户端界面
这里模拟微博客户端进行案例开发,由于没有图片资源,所以就做了一个大体结构类似的案例,跟大家分享一下它的实现,这里采用的是使用xml布局结合TabActivity控制。先看看实现的效果:工程目录结构:以下是源代码:MainActivity.javapackage com.tablehost.activity;import andro原创 2013-02-18 21:21:31 · 7575 阅读 · 2 评论 -
Android之UI学习篇三:TextVeiw单击文字链接弹出Activity
在TextView中还可以实现单击文字,来跳转到设定的Activity中去,是不是很神奇呀,先看看实现的效果:MainActivity界面截图:单击"显示Activity1"之后,弹出Activity1的窗口,截图如下:同样,单击"显示Activity2"弹出界面截图:实现代码如下:由于main.xml文件比较简单,这里就不给出源代码了哦,原创 2013-02-16 23:37:57 · 6177 阅读 · 1 评论 -
Android入门篇四:使用剪切板在Activity之间传递对象数据
使用剪切板在Activity之间传递对象数据,要用到一个特殊的类---android.util.Base64.java,将对象转换成字符串,再在剪切板中放入要传递的数据,在接收端将字符串还原成对象,在把数据取出来,通过例子来看一下如何实现:工程结构图:运行结果如下:MainActivity截图:OtherActivity截图:开始上源代码:MainA原创 2013-02-16 20:51:56 · 3265 阅读 · 0 评论 -
Android之UI学习篇五:AutoCompleteTextView自动完成输入内容
首先来看一张图片:大家在使用百度进行关键字搜索的时候,当输入一段内容后,搜索引擎会自动匹配给我们提示内容,那么如果想在Android中同样实现这样的内容,来提高用户体验怎弄呢?在这里给大家介绍一个好伙伴,那就是AutoCompleteTextView这个类,通过使用这个类,并且给它提供适配器,它会根据我们的输入内容实现同样的功能,效果截图如下:以下是实现代码:原创 2013-02-17 00:19:41 · 5689 阅读 · 0 评论 -
Android之UI学习篇四:EditText输入表情和特殊字符
大家都知道EditText可以输入数据,如何在EditText中来插入表情,以及实现只能输入规定格式的信息呢?首先给大家看一下实现的效果:界面如下:当点击"添加表情"后,会随机的选取一张表情填入到EditText中,截图如下:下面的输入规定类型的数据,截图如下:代码和布局文件如下:MainActivity.javapack原创 2013-02-16 23:51:37 · 16164 阅读 · 0 评论 -
Android之UI学习篇二:TextVeiw显示表情和跑马灯效果
给大家先看一下效果吧:几秒后(文字在向左跑动):以上就是实现图片和文字混排、文字跑马灯的效果实现,接下来看一下代码如何实现吧:MainActivity.javapublic class Android_TextviewActivity extends Activity { private TextView textView1; private Tex原创 2013-02-16 23:27:34 · 2537 阅读 · 0 评论 -
Android入门篇五:使用全局变量在Activity之间传递数据
在Activity之间数据传递中还有一种比较实用的方式,就是全局对象,使用J2EE的读者来说都知道Java Web的四个作用域,这四个作用域从小到大分别是:Page、Request、Session和Application,其中Application域在应用程序的任何地方都可以使用和访问,除非是Web服务器停止,Android中的全局对象非常类似于Java Web中的Application域,除非是原创 2013-02-16 21:39:49 · 23929 阅读 · 5 评论 -
Android入门篇三:使用静态变量在Activity之间传递数据
上次给大家介绍了如何使用意图在Activity之间传递数据,这次讲解一下如何使用静态变量来传递数据,原理其实很简单,就是在接收端的Avtivity里面设置static的变量,在发送端这边改变静态变量的值,然后启动意图。效果图为:发送端截图:接收端截图:那么就直接给代码了:一、MainActivity.javapackage com.intent.ac原创 2013-02-16 17:41:38 · 8441 阅读 · 0 评论 -
Android之UI学习篇一:TextVeiw如何显示丰富的文本
相信大家必定都知道TextView主要是在android中实现文字说明等功能,那么TextView能否显示更加丰富的文本,如URL、字体大小、颜色这些,答案是肯定的!那么究竟如何来让我们的TextView显示的内容更加丰富多彩呢,这一篇来跟大家一起探讨一下:首先呢,大家要知道的是,我们网页里能够显示多样性的文字,都归功与HMTL标签对吧,其实在Android的TextView中也预定了一些原创 2013-02-16 23:13:08 · 10745 阅读 · 0 评论