Android
文章平均质量分 59
tiandiren2007
喜欢学习各类软件
展开
-
音视频合成
/** * 音频必须是aac,视频需要是H264或mpeg4 */ private void muxing(String audioFilePath,String videoFilePath) { String outputFile = ""; try { File file = new File(Envi原创 2017-09-12 21:21:29 · 951 阅读 · 0 评论 -
dip px 转换
public static int dip2px(Context context, float dipValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dipValue * scale + 0.5f); }原创 2013-12-16 11:00:28 · 441 阅读 · 0 评论 -
从异常堆栈中还原 ProGuard 混淆过的代码
从异常堆栈中还原 ProGuard 混淆过的代码ProGuard在 Android 应用发布的时候经常会用来混淆代码。 混淆后的应用发布到市场上,当用户反馈 Crash 的时候, 开发者看起来就不那么好定位问题根源了。例如:帮助12345Caused by: java.lang.NullPointerExc转载 2013-12-13 16:22:15 · 457 阅读 · 0 评论 -
内部Handler类引起内存泄露
内部Handler类引起内存泄露如果您在Activity中定义了一个内部Handler类,如下代码:帮助123456789101112131415161718192021public class MainActivity extendsActi转载 2013-12-13 17:02:35 · 356 阅读 · 0 评论 -
常用文件操作代码
1.将字节数组保存到文件中public static void savePhotoToSDCard(String path, byte[] content) throws IOException { FileOutputStream fos = null; try { File file = new Fil原创 2013-12-13 16:31:15 · 445 阅读 · 0 评论 -
大分辨率适配
在PAD应用开发的过程中,在PC上模拟器上运行的只是小分辨率的程序,而对于大小如同1027*768的,可能支持上不是很完美. 除了把图片,布局文件放入不同的文夹中,如(drawable-mdpi, drawable-ldpi, layout-land.....)对大屏幕的支持还需要以下配置:转载 2013-07-08 15:04:14 · 377 阅读 · 0 评论 -
增量升级APK
背景 随着android应用体积的不断增大,以及应用版本发布的不断更迭,用户的升级成了一个问题,google也意识到不断更新应用对用户流量的损耗,在Google I/O 上提及的 Smart App update,即应用增量升级,或者叫做差分升级的做法,并在新版本的Google Play中得到支持,某天在和群友聊天是扯到这方面的话题,好奇就稍微研究了一下。增量升级的原理转载 2013-06-21 10:31:03 · 1005 阅读 · 0 评论 -
开启闪光灯的几种方式
1、用IHardwareService直接控制Android1.5以前是直接提供这个接口的,之后呢,需要我们自己来做一下。在你的项目中新建一个包android.os,新建一个IHardwareService.aidl文件,内容如下:[java] view plaincopy"font-size:18px;">package android转载 2013-06-19 11:37:45 · 1698 阅读 · 0 评论 -
Android深入浅出之Binder机制
Android深入浅出之Binder机制Android深入浅出之Binder机制一说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l S转载 2013-05-28 14:24:06 · 382 阅读 · 0 评论 -
Android消息处理机制
Android消息处理机制转自:http://www.cnblogs.com/qingblog/archive/2012/06/27/2566021.htmlGoogle参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制。学习Android的消息处理机制,有几个概念(类)必须了解:1. Message消息,理解为线程间通讯的数转载 2013-05-28 14:17:32 · 366 阅读 · 0 评论 -
SpannableString
SpannableStringTextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置myTextView = (TextView) this.findViewById(R.id.myTextView); //创建一转载 2013-04-29 19:17:10 · 452 阅读 · 0 评论 -
SQLite中支持的函数
一、聚合函数: SQLite中支持的聚合函数在很多其他的关系型数据库中也同样支持,因此我们这里将只是给出每个聚集函数的简要说明,而不在给出更多的示例了。这里还需要进一步说明的是,对于所有聚合函数而言,distinct关键字可以作为函数参数字段的前置属性,以便在进行计算时忽略到所有重复的字段值,如count(distinct x)。函数说明avg(x)该转载 2014-06-24 14:44:26 · 2030 阅读 · 1 评论 -
adt-bundle android-studio sdk 下载地址
原文:http://blog.csdn.net/shulianghan/article/details/38023959 最近 Google 被墙了, 上传一下自己收集的 Android 开发环境, 下面给出的官网链接也可以下载; 1. 百度网盘下载地址 Android集成环境 NDK JDK 总链接 : http://pan.baidu.com/s/1bnjaDKb;转载 2015-11-09 13:08:59 · 714 阅读 · 0 评论 -
Android通过HttpURLConnection与HttpClient联网代理网关设置
Android联网主要使用HttpURLConneciton和HttpClient进行联网,在手机联网的时候,我们优先选择wifi网络,其次在选择移动网络,这里所述移动网络主要指cmwap。大家都知道cmwap连接需要设置代理地址和端口,那么,android程序中如何设置代理呢?这是个问题。HttpURLConnection设置代理1 //当我们使用的是中国移动的手机网络时,下转载 2016-05-25 09:39:51 · 518 阅读 · 0 评论 -
理解LinkedHashMap
理解LinkedHashMap转自http://uule.iteye.com/blog/1522291 1. LinkedHashMap概述:LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。 LinkedHashMap是Map接口的哈转载 2016-03-13 11:01:11 · 363 阅读 · 0 评论 -
Android子线程真的不能更新UI么
Android子线程真的不能更新UI么 Android单线程模型是这样描述的:Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行 如果在其它线程访问UI线程,Android提供了以下的方式:Activity.runOnUiThread(Runnable)View.post(Runnable)View.postDelaye转载 2016-03-13 10:18:16 · 671 阅读 · 0 评论 -
Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
Android中为什么主线程不会因为Looper.loop()里的死循环卡死?app程序入口中为主线程准备好了消息队列…显示全部 分享 什么是答案总结? 答案总结Handler 机制应该基本都知道了,题主点进去源码看下 ActivityThread 就能基本搞明白了,为什么主线程不转载 2016-03-12 21:07:14 · 16023 阅读 · 0 评论 -
OkHttp+Stetho+Chrome调试android网络部分
OkHttp+Stetho+Chrome调试android网络部分 android网络调试一直是一个比较麻烦的部分,因为在不同序列的请求中,返回的数据会有不同的变化,如果能像web开发一样使用调试功能查看页面的访问数据该是多么美好的事情!很幸运的是,现在Android开发也可以实时监听网络访问了,能够看到你的发送数据信息,也能够看到返回数据信息。如图:转载 2016-04-02 21:42:03 · 576 阅读 · 0 评论 -
详解YUV420数据格式
YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。 YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chro原创 2016-02-24 10:31:26 · 517 阅读 · 0 评论 -
YUV分析
在摄像头之类编程经常是会碰到YUV格式,而非大家比较熟悉的RGB格式. 我们可以把YUV看成是一个RGB的变种来理解. YUV的原理是把亮度与色度分离,研究证明,人眼对亮度的敏感超过色度。利用这个原理,可以把色度信息减少一点,人眼也无法查觉这一点。 YUV三个字母中,其中"Y"表示明亮度(Lumina nce或Luma),也就是灰阶值;而"U"和"V"表示的转载 2016-02-24 10:30:10 · 496 阅读 · 0 评论 -
android开源库android-gif-drawable的使用
android开源库android-gif-drawable的使用 android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的gif图片 不会内存溢出,于是我就想试试这个开源库,我下了作者的源代码和例子,但是我却跑不起来。不知道为什么,我又到网上去找使用这个开源库的例子发现有一个,我也下载了下来,发现还是跑不起来。我决定自转载 2016-03-07 21:12:47 · 776 阅读 · 0 评论 -
详解Google Authenticator工作原理
详解Google Authenticator工作原理发表于2014-09-23 08:28| 10060次阅读| 来源CSDN| 16 条评论| 作者伍昆Google二维码Google Authenticator算法 摘要:Google Authenticator是谷歌推出的一款动态口令工具,旨在解决大家Google账户遭到恶意攻击的问题。那么,Authen转载 2016-03-05 20:38:02 · 5702 阅读 · 0 评论 -
Android 图文结合,使用SpannableString和ImageSpan类
Drawable drawable =getResources().getDrawable(id); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight()); //需要处理的文本,[smile]是需要被替代的文本 Spannable转载 2013-04-29 19:22:55 · 516 阅读 · 0 评论 -
logcat命令
Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命令来查看和使用. 一、使用logcat命令的目的: 1、你可以用 logcat 命令来查看系统日志缓冲区的内容: [adb] logcat [] ... [] ... 详细内容,请查看Li转载 2013-03-15 12:11:27 · 421 阅读 · 0 评论 -
获得视频指定时间点的缩略图
//获取视频指定帧的bitmapprivate static Bitmap createVideoThumbnail(String filePath) { Bitmap bitmap = null; if(filePath == null || filePath == ""){ bitmap = Bitmap.createBitmap(480, 320, Bi转载 2013-03-02 17:27:16 · 672 阅读 · 0 评论 -
禁止自动弹出软键盘
<!--.pcb {margin-right:0}--> 在Android应用中,当跳转到某个Activity时,该Activity显示页面的EditText获得焦点,在某些机器中会触发软键盘的自动弹出。有时候为了更好的用户体验,需要控制在用户点击EditText时才弹出软键盘,即需要才弹出。方法一:在androidmini原创 2012-06-02 23:01:51 · 733 阅读 · 0 评论 -
内存泄漏
1.资源对象没关闭造成的内存泄漏描述:资源性对象比如(Cursor,File文件等)往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回收内存。它们的缓冲不仅存在于java虚拟机内,还存在于java虚拟机外。如果我们仅仅是把它的引用设置为null,而不关闭它们,往往会造成内存泄漏。因为有些资源性对象,比如SQLiteCursor(在析构函数finalize(),如原创 2012-05-29 00:05:32 · 318 阅读 · 0 评论 -
全屏
全屏在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.Layo原创 2012-05-01 15:03:21 · 368 阅读 · 0 评论 -
子线程中使用Toast
子线程中使用ToastLooper.prepare();Toast.makeText(getApplicationContext(),"下载失败", 0).show();Looper.loop();原创 2012-04-04 22:52:11 · 412 阅读 · 0 评论 -
如何添加上下文菜单
如何添加上下文菜单//为lv注册上下文菜单 registerForContextMenu(lv);//创建菜单布局 @Override publicvoid onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {原创 2012-04-04 22:51:03 · 1008 阅读 · 0 评论 -
Jni使用流程
Jni使用流程:1. 工程下建立一个jni目录,目录下建立一个Android.mk文件(可以到ndk文档中copy)2. 在java文件中建立需要的 native方法3. 到工程的bin/classes目录下用javah生成所要的头文件4. 将头文件copy到jni目录下,再建立一个.c文件在该文件中实现头文件中的方法原创 2012-04-04 23:39:27 · 3962 阅读 · 0 评论 -
listView的优化
ListView的优化(时间换空间,时间换时间)1. android:cacheColorHint="@android:color/transparent"拉动时没有底色变动2. numbers =dao.queryAll();//让数据适配器通知listView有数据更新,数据更新后就可以看到数据的变化,无需全部刷新 adapter.notifyData原创 2012-04-04 22:50:20 · 258 阅读 · 0 评论 -
全屏显示的方法
方法一: // 设置没有标题 requestWindowFeature(Window.FEATURE_NO_TITLE); //设置全屏显示 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.Layo原创 2012-04-04 22:48:44 · 270 阅读 · 0 评论 -
实例化一个xml布局的方法
LayOutInflater:1. View view = View.inflate(this, R.layout.name, null);2. LayoutInflater flater= (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);3. LayoutInf原创 2012-04-04 22:47:15 · 444 阅读 · 0 评论 -
selector 颜色选择器
Xml -> selector颜色选择器根据当前控件的状态显示不同颜色原创 2012-04-04 22:53:52 · 509 阅读 · 0 评论 -
Android 安全机制概述
1 Android 安全机制概述Android 是一个权限分离的系统 。 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 。 与此 同时, Android 还 在此基础上进行扩转载 2012-06-09 11:34:22 · 253 阅读 · 0 评论 -
Android 安全机制概述
1 Android 安全机制概述Android 是一个权限分离的系统 。 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 。 与此 同时, Android 还 在此基础上进行扩转载 2012-06-09 11:34:35 · 367 阅读 · 0 评论 -
AppWidget开发
本文和大家重点学习一下Widget开发的概念,本例是为了实现一个手机Android平台的Widget开发,该Widget中的内容是根据输入账号从叽歪网站上获得得。当然,这个过程需要叽歪的API,得到信息后进行处理并显示出来。大体流程就是这样。好了,进入第一步。 该叽歪账号是测试账号,用户名是“students”,密码是“111111”请不要擅自更改。 2.建立一个Widget A转载 2013-02-27 10:59:28 · 217 阅读 · 0 评论 -
android 不自动弹出虚拟键盘
如果是Activity的话在 Manifest.xml 相应的 Activity 里添加android:windowSoftInputMode="adjustPan|stateHidden"如果是其他View的话添加以下代码InputMethodManager imm = (InputMethodManager) getSystemService(Context.I原创 2013-02-03 14:06:38 · 464 阅读 · 0 评论 -
VelocityTracker监控速度
用来追踪触摸事件(flinging事件和其他手势事件)的速率。用obtain()函数来获得类的实例,用addMovement(MotionEvent)函数将motion event加入到VelocityTracker类实例中,当你使用到速率时,使用computeCurrentVelocity(int)初始化速率的单位,并获得当前的事件的速率,然后使用getXVelocity() 或getXVelo转载 2013-02-03 17:58:32 · 324 阅读 · 0 评论