android
文章平均质量分 86
小枫_S
越努力越幸运
展开
-
Android中使用Handler造成内存泄露的分析和解决
什么是内存泄露?Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收;另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不可到达转载 2014-09-18 13:20:02 · 354 阅读 · 0 评论 -
AndroidStudio编译.SO库文件心得一
文本心得通过以下三篇文章习来: Android Studio开发JNI工程 Android Sutdio开发NDK工程 在Android Studio中直接编译C/C++文件 谢谢三位作者的分享,才能学到这么宝贵的知识。 一直以来都是用的别的SDK提供的so库,编译so库文件跟调用so库的方法都是未曾尝试过。以前看博客了解的是使用Cygwin进行编译so. 现在有了An原创 2016-08-16 11:09:09 · 9917 阅读 · 1 评论 -
DrawerLayout使用(实现SlidingMenuUI效果)
以前做侧边栏功能,使用的是开源库SlidingMenu,最近在做透明状态栏的时候出现menu跟content没办法上移到状态栏的问题,想起以前创建的带侧边栏的Activity是能够使用状态栏的,不过他的侧边栏是用的系统自带的DrawerLaout,准确说应该叫做抽屉,命名跟他的效果也很贴切。 下面记录一些在使用DrawerLaout的时候遇到的一些问题及跟SlidingMenu在滑动风格上的区别,原创 2016-08-01 11:15:15 · 2442 阅读 · 5 评论 -
Android 系统语言切换监听和设置
最近项目上产品经理提了个需求,要求关闭语言国际化,不管手机系统设置那个国家的语言,都要显示汉语,好吧,既然有需求,那就做吧。但是项目中已经有英文的配置了,且是作为默认String提供的,这么多翻译好的文字,直接删除掉替换成中文为默认String又感觉弃之可惜。故网上Google下解决方案。就开始往下看吧。一、代码中动态设置应用显示语言(手动控制使用values-zh-rCN下字符串)这个方原创 2016-08-18 10:13:11 · 30349 阅读 · 6 评论 -
几种判断应用(Android App)前后台状态的方法
很多应用,在某些场景下可能需要判断应用的前后台状态,来实现某些功能,例如应用锁。 本文提供几种判断应用前后台状态的方法,这几种方法我在使用的过程中发现都有各自的局限性或者缺点。下面直接看方法吧。方法一 通过getRunningTasks获取 上面这种方式需要权限android:name=”android.permission.GET_TASKS” 且这个getRunningTasks已原创 2016-08-11 13:19:46 · 10583 阅读 · 0 评论 -
AIDL简析使用
AIDL ,Android Interface definition language的缩写,就是经常讲的进程间通信。话就不说太多,直接代码搞起,这里我们创建两个module,都为应用类型的模块,一个客户端应用A,一个作为提供服务的服务端应用B(也是客户端),我们这里写一个简单的计算服务在服务端,然后A调用B的服务实现计算。 我们先创建B模块: 看到我圈中的地方,我们在main下跟java平原创 2016-11-10 15:30:19 · 588 阅读 · 0 评论 -
DiffUtil使用总结
最近看博客,发现了一个存在recycleview-v7包下的工具类DiffUtil,他是为recycleview的数据变化提供数据对比的工具类。 以前我们在更新数据适配器的时候,一般都是调用的mAdapter.notifyDataSetChanged(),这个是对整个列表的数据进行刷新, 调用该方法的时候并不会触发recycleview的动画,不过现在我们可以使用DiffUtil进行定向刷新,且带原创 2016-11-01 15:28:15 · 10680 阅读 · 0 评论 -
自定义下拉回弹View-掌握View冲突处理
文本核心学习自文章: 一个Demo带你彻底掌握View的滑动冲突 修改相应代码,拓展原文只能下拉不能拖动上下滑动的问题。 下面先上效果图: 整体可以滑动,下拉图片放大,上拉缩小,拉动过程中释放,布局自动回弹,子控件可滑动,不会跟最外层的控件产生冲突,大概的效果就是这样。 下面我们一步一步来做, 一、实现下拉回弹效果 实现滑动效果的方式我知道的有以下几种,1.动画实现,2,使用Scr原创 2016-12-10 16:16:12 · 870 阅读 · 0 评论 -
录音转换Mp3-Lame4Android 下篇
本文只是作为录音转换Mp3-Lame4Android 上篇的一点补充,增加上篇文章结尾提到6.0系统权限处理,同时简单讲下录音功能的实现。 如果没有看过录音转换Mp3-Lame4Android 上篇,请点击链接查看 录音转换Mp3-Lame4Android 的编译(http://blog.csdn.net/q919233914/article/details/54603441)1.导入jar和s原创 2017-01-19 15:52:03 · 2148 阅读 · 4 评论 -
录音转换Mp3-Lame4Android 上篇-带详细SO库编译教程
在Android与IOS上面如果做录音功能,一般手机录制出来的音频格式都不是MP3,为了两个平台的APP的录音文件一致,需要选择一种两个平台都支持播放且占用存储空间不会太大的音频文件格式,这里MP3就符合这一需求。我们这里选择libmp3lame把AudioRecord音频流直接转换成MP3格式。 本文使用eclipse进行开发 那下面就开始我们的前期工作1.给eclipse增加NDK开发支持我原创 2017-01-18 18:05:22 · 6442 阅读 · 0 评论 -
Android 内核--Binder架构分析
转自:http://www.cnblogs.com/a284628487/p/3187320.html?utm_source=tuicool&utm_medium=referral一、Binder架构 在Android中,Binder用于完成进程间通信(IPC),即把多个进程关联在一起。比如,普通应用程序可以调用音乐播放服务提供的播放、暂停、停止等功能。Binder工作在Li转载 2017-03-16 15:14:26 · 1218 阅读 · 0 评论 -
Android Studio使用gradle导出jar包并混淆代码代码记录二
1.偷懒式导出Jartask releaseMyLib(type: Copy, dependsOn: ['build']) { from('build/intermediates/bundles/release/') into('build/libs') include('classes.jar') rename('classes.jar', 'my-lib.jar'原创 2017-05-18 14:43:20 · 1929 阅读 · 0 评论 -
文章记录
Gradle学习-------------------------------------------Gradle入门系列(1):简介 Gradle入门系列(2):第一个Java项目Gradle入门系列(3):依赖管理原创 2017-05-12 11:13:35 · 689 阅读 · 0 评论 -
Android Studio使用gradle导出jar包并混淆代码代码记录一
创建一个Android module 和一个JavaLibrary module 在jardemo下的gradle文件中编写对应的导Jar包Task和混淆Task 1.导Jar包Tasktask makeJar(type: Jar, dependsOn: ['compileReleaseJavaWithJavac']) { appendix = 'demo' baseName原创 2017-05-18 14:25:30 · 3924 阅读 · 1 评论 -
ProductFlavors不同依赖配置打包
在开发过程中,有时会遇到同一个APP要依赖不同的类库打不同的apk或者是同一个App打包的时候依赖不同的module。这个要怎么实现呢。其实很简单,就是使用我们的ProductFlavors。这里就不多说,直接看代码productFlavors { apkBaidu {} apk360{} }我们先声明两个Flavor,假设我们这里有moduleA,modul原创 2017-12-14 09:52:33 · 8425 阅读 · 0 评论 -
Android平台上获取文件的MIME
/** * 使用系统API,根据url获得对应的MIME类型 */ private String getMimeTypeFromUrl(String url) { String type = null; //使用系统API,获取URL路径中文件的后缀名(扩展名) String extension = MimeTypeMap...原创 2018-07-04 16:25:11 · 5631 阅读 · 0 评论 -
Android沉浸式状态栏尝试
本文说的沉浸式状态栏不是真正意义上的沉浸式(状态栏会收缩隐藏起来),而是目前国内国产手机提到的沉浸式状态栏,即是状态栏的背景色跟界面顶部(可简单理解为标题栏)的颜色保持一致。 最近发现越来越多的应用开始实现沉浸式状态栏。从视觉角度上看是挺好的。 本文会提及几种实现方式。 方式一:纯色状态栏 先上图吧。 下面看代码:public static void initStatusBarStyl原创 2016-07-29 15:50:23 · 532 阅读 · 0 评论 -
Log日志框架-对原生Log进行简单封装
闲来无事,对以前项目中使用的对Log的封装使用抽取出来,写成一个Demo供博友参考。 Demo是以Gradle构建的项目。其中涉及到打Release包跟Debug包的时候对于日志输出的控制,由gradle脚本进行控制,下文我再细说。 先看下日志的输出效果: 效果比较简洁,主要展示日志的具体来源及日志消息,并提供点击快速定位代码的功能。 下面直接看代码:package com.csf.si原创 2016-07-27 16:20:39 · 4491 阅读 · 2 评论 -
Android----- WebView 缓存处理
当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹:我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webviewCache文件夹下.WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即AppCache)。一、网页缓存1、缓存构成/data/da转载 2014-09-19 15:52:59 · 430 阅读 · 0 评论 -
Android-----WebView使用 (集锦)
android webview 缩放及换行 1、webview支持页面缩放,一般通过以下设置就可满足80%的要求//缩放开关webView.getSettings().setSupportZoom(true);设置此属性,仅支持双击缩放,不支持触摸缩放(在android4.0是这样,其他平台没试过)// 设置是否可缩放转载 2014-09-19 14:52:50 · 956 阅读 · 0 评论 -
android layout及其控件在选中时的焦点冲突问题
android layout及其控件在选中时的焦点冲突问题 2013-05-04 10:18:30| 分类: 工作笔记 | 标签: |举报 |字号大中小 订阅[discription] 布局如下: LinearLayout android:id="@+id/appTextLayout" android:layout_wid转载 2014-09-29 20:10:45 · 894 阅读 · 0 评论 -
解决ViewFlow在Scrollview下滑动不灵敏的BUG(解决viewflow与父控件的滑动事件冲突问题)
转自http://www.oschina.net/question/778954_158470?sort=time 第一次在开源中国发分享贴,有点小紧张,把我最近遇到的问题和解决方法分享出来,供遇到此类问题的朋友参考 PS:关联代码来源于开源社区 最近针对公司的电商客户端做优化,首页实现类似主流电商客户端那样,有左右banner图片切换,实现下拉刷新 但是,在实现的过程转载 2014-11-04 16:53:19 · 1510 阅读 · 0 评论 -
Android——Toast重复显示解决方法
标分类: AndroidToast是Android中用来显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点,而且Toast显示的时间有限,过一定的时间就会自动消失。Toast一般用来提示用户的误操作。但是如果同时显示多个Toast信息提示框,系统会将这些Toast信息提示框放到队列中,等前一个Toast信息提示框关闭后才会显示下一个Toast转载 2014-10-21 17:15:17 · 844 阅读 · 0 评论 -
Android最佳性能实践(二)——分析内存的使用情况
android性能内存泄露内存mat转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/42238633由于Android是为移动设备开发的操作系统,我们在开发应用程序的时候应当始终把内存问题充分考虑在内。虽然Android系统拥有垃圾自动回收机制,但这并不意味着我们就可以完全忽略何时去分配或释放内存。即使我们全部按照上一篇转载 2015-02-13 11:01:45 · 325 阅读 · 0 评论 -
Android RecyclerView 使用完全解析 体验艺术般的控件
Android RecyclerView 使用完全解析 体验艺术般的控件 分类: 【android 进阶之路】 【Android 基础】 2015-04-16 09:07 3769人阅读 评论(40) 收藏 举报转载 2015-04-21 18:28:42 · 506 阅读 · 0 评论 -
解决SwipeRefreshLayout左右滑动事件冲突的问题
解决SwipeRefreshLayout左右滑动事件冲突的问题转载自http://www.cnblogs.com/tianzhijiexian/p/4397537.html 在使用SwipeRefreshLayout时我们注意到在SwipeRefreshLayout中左右滑动时可能也会触发下拉刷新的事件,这点让我们很不爽。追其原因是SwipeRefreshLayout对转载 2015-05-04 19:08:25 · 1198 阅读 · 2 评论 -
Android中的Shape使用总结
转自 :http://blog.csdn.net/bear_huangzhen/article/details/24488337在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状,首先我们了解一下Shape下面有哪些标签,都代表什么意思:solid:填充android:color指定填充的颜色gradient:渐变android:st转载 2015-05-28 11:27:11 · 446 阅读 · 0 评论 -
监听后台Service是否被Kill并重新启动Service
在这篇文章中,我们会用到一个系统广播---系统时钟广播,即Intent.ACTION_TIME_TICK,在说之前,我们先了解下这个广播的情况,看文档上说的: 在众多的Intent的action动作中,Intent.ACTION_TIME_TICK是比较特殊的一个,根据SDK描述:**Broadcast Action: The current time has changed. S原创 2015-10-26 15:24:48 · 2188 阅读 · 1 评论 -
Android安全攻防战,反编译与混淆技术完全解析(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值得骄傲的事情。不过单纯从技术角度上来讲,掌握反编译功能确实是一项非常有用的技能,可能平常不太会用得到,但是一旦真的需要用到的了,而你却不会的话,那就非常头疼了。另外既然别人可以反编译程序,我们当然转载 2016-03-26 14:34:30 · 529 阅读 · 0 评论 -
Android安全攻防战,反编译与混淆技术完全解析(下)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/50451259 在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码、反编译资源、以及重新打包等内容。通过这些内容我们也能看出来,其实我们的程序并没有那么的安全。可能资源被反编译影响还不是很大,重新打包又由于有签名的保护导致很难被盗版,但代码被反编译就有转载 2016-03-26 14:35:49 · 872 阅读 · 0 评论 -
Android Https相关完全解析 当OkHttp遇到Https
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/48129405; 本文出自:【张鸿洋的博客】 一、概述其实这篇文章理论上不限于okhttp去访问自签名的网站,不过接上篇博文了,就叫这个了。首先要了解的事,okhttp默认情况下是支持https协议的网站的,比如https://www.baidu.com,https://转载 2016-04-25 16:26:14 · 645 阅读 · 0 评论 -
android httpClient(https/http)的优化构建方式二
摘要 之前一遍博客是使用Apache的HttpClient进行创建的,这里我们使用纯Java代码来进行设置由于时间原因,这里只构建所有请求https都能通过的请求client首先定义(重写)信任管理器 public class SSLTrustManager implements javax.net.ssl.TrustManager, javax.net.ssl.X509Tr转载 2016-04-25 17:09:47 · 438 阅读 · 0 评论 -
解决Android模拟器中修改host文件无效/android域名解析为Ip方法
转自:http://my.oschina.net/FACEqiu/blog/400847目前网上教程如下三条:1. 通过emulator -avd avdName -partition-size size启动模拟器2.通过adb root 和 adb remount 命令获得root权限。3.通过 adb pull /system/etc/hosts 命令将hosts文转载 2016-05-09 10:57:25 · 5718 阅读 · 0 评论 -
关于那些Android中不常用的设置属性
很多在manifest中的属性我们经常遗忘了它们,或者经常看到但又不是很明白它的作用。那么在这里我就拿了一些属性简单的解释一下,防止以后碰到却不知道其中的意思。不是很全,以后会断断续续的补充吧一、android:installLocation=’internalOnly’ android:installLocation隶属于AndroidManifest.XML中的manifest节点.如下所示:转载 2016-06-13 14:17:56 · 5060 阅读 · 0 评论 -
Android调用系统组件获取指定格式文件
try { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("audio/*"); activity.startAct...原创 2018-07-04 17:16:48 · 2086 阅读 · 0 评论