android
sam_zhang1984
这个作者很懒,什么都没留下…
展开
-
提升Android应用开发性能的十大要点
第一个要点:首先要有良好的编程习惯要成为一名优秀的资源管理员;既要运用常识,还要使用公认的算法和标准的设计模式。在资源使用方面,如果你打开了资源,要记得关闭资源。要尽量晚地获取,尽量早地释放。这些由来已久的编程准则同样适用于你的Android应用程序,如果它们使用底层的设备服务,更是如此。比如说,假设你编写的一个应用程序依赖基于位置的服务。除非你绝对有必要,否则不要开始注册、获取位转载 2013-02-25 21:38:26 · 890 阅读 · 0 评论 -
Android Studio NDK 开发与调试(生成 .so 文件)
温馨提示:如果你的 Android Studio 版本在 2.2 以上 , 建议你用 cMake 的新姿势进行 NDK 开发 : http://www.jianshu.com/p/e03028f826d7我相信你会爱上 cMake 的;1. 环境搭建俗话说 “工欲善其事,必先利其器” ;所以咱还是得先下载 ndk;下载地址 :https://developer.android.转载 2017-09-19 16:03:22 · 666 阅读 · 0 评论 -
Android studio运行JNI程序以及生成.so文件(Windows下)
最近公司要求进行SDK开发,后期会用到JNI开发和生成.so文件,搜集网上资料,踩了几个大坑,终于看到自己想要的结果,先附一张结果图调用JNI中的方法展示出来的结果生成的各个平台的so库的结果下面开始进入主题1、首先是要配置NDK(若是已经配置过NDK请略过此步骤)官网下载NDK地址(此地址下载需要翻墙)若是你翻不了墙请移步至一个强大的下载网站(转载 2017-09-19 16:04:26 · 539 阅读 · 0 评论 -
Android 实现WebView点击图片查看大图列表及图片保存
在日常开发过程中,有时候会遇到需要在app中嵌入网页,此时使用WebView实现效果,但在默认情况下是无法点击图片查看大图的,更无法保存图片。本文将就这一系列问题的实现进行说明。图示: 项目的知识点: 加载网页后如何捕捉网页中的图片点击事件; 获取点击的图片资源后进行图片显示,获取整个页面所有的图片; 支持查看上下一张的图片以及对图片缩放显示; 对图片进行保存; ...转载 2018-08-31 15:47:22 · 3351 阅读 · 1 评论 -
PermissionsDispatcher使用详解
PermissionsDispatcher是一个基于注解、帮助开发者简单处理Android 6.0系统中的运行时权限的开源库。避免了开发者编写大量繁琐的样板代码。开源地址:https://github.com/hotchemi/PermissionsDispatcher文档介绍:http://hotchemi.github.io/PermissionsDispatcher/下面详细介绍...转载 2018-11-06 17:46:56 · 1078 阅读 · 0 评论 -
Android 爬坑之旅:软键盘挡住输入框问题的终极解决方案
前言开发做得久了,总免不了会遇到各种坑。而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑——来来来,我们慢慢看。入门篇 最基本的情况,如图所示:在页面底部有一个EditText,如果不做任何处理,那么在软键盘弹出的时候,就有可能会挡住EditText。对于这种情况的处理其实很简单,只需要在AndroidManifest文件中对activi...转载 2018-11-05 17:03:02 · 382 阅读 · 0 评论 -
Android语音文件speex编码解码
Android语音文件speex编码解码(一)https://blog.csdn.net/qq_29078329/article/details/56287338最近项目需要实现功能:用户通过语音发大幕,语音文件压缩后发送到后台,后台解析生成文本,显示文字。Android中使用AudioRecord录音后的格式为pcm,要想播放需要转换格式,可以加入44字节的头转换为wav格式后播放,并且...转载 2018-11-22 16:17:40 · 1026 阅读 · 0 评论 -
Speex语音压缩与解压在Android上的实现
由于项目需要做语音降噪处理,最近做了这方面的研究。但结果却没有达到,反而却学得了基于Speex的语音压缩和解压,也算没有白白浪费时间(300K的语音文件经过Speex压缩后文件大小变为了30K左右,对于网络传输非常好)。 关于Speex:http://www.speex.org/ Speex主要提供的技术: 1....转载 2018-11-22 16:20:21 · 577 阅读 · 0 评论 -
通过ndk导出aar和so库文件供其他android项目使用
目标根据项目的需求,我们用纯c实现的模块,需要移植到android设备中,制作java版本的sdk,我们需要用到jni和ndk。下面用实例一步一步介绍这个过程。目标如下:c源接口 java目标接口 #include <stdlib.h>#include <stdio.h>#include <string.h>#ifndef ...转载 2018-11-26 17:36:20 · 1083 阅读 · 1 评论 -
Android 蓝牙4.0 Ble通讯问题小汇总
Android 蓝牙4.0 Ble通讯问题小汇总由于公司前段时间有一个项目要用到蓝牙BLE技术,才开始研究Ble技术,在网上也找了很多文章查看,基本的蓝牙连接通讯都有,就是出现的问题解答比较少,在这里说说个人遇到的问题。129错误 133错误 分包发送数据 自定义数据交互格式 首次连接速度慢 蓝牙防丢器原理 Ble连接数据交互整个流程129错误在网上找了许多,基本都没有说...转载 2019-01-21 14:40:07 · 679 阅读 · 0 评论 -
Android平台第三方插件开发指导(dcloud)
技术架构HTML5+ 基座扩展采用三层结构,JS层、PluginBridge层和Native层。 三层功能分别是:JS层: 在Webview页面调用,触发Native层代码,获取执行结果。PluginBridge层: 将JS层请求进行处理,触发Native层扩展插件代码。Native层: 插件扩展的平台原生代码,负责执行业务逻辑并执行结果返回到请求页面。开发者在开发扩展插件时需要为扩...转载 2019-06-28 10:23:32 · 3565 阅读 · 0 评论 -
动态修改带圆形背景的图标
带圆形背景的图标可以以下面的方式写XML (icon_with_circle_bg.xml)xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android"> android:id="@+id/circleBG"> android:shape原创 2017-09-07 17:02:13 · 412 阅读 · 0 评论 -
navigation图标尺寸
mdpi : 24 x 24 pxhdpi : 36 x 36 pxxhdpi : 48 x 48 pxso on ... according to their ratio.like :mdpi : hdpi : xhdpi : xxdpi = 1 : 1.5 : 2 : 3原创 2017-09-04 09:03:14 · 429 阅读 · 0 评论 -
Android Java代码执行adb Shell命令
Android Java代码执行adb Shell命令通过java代码代替adb命令增加工具类ShellUtils.javaimport java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReade转载 2016-01-20 11:19:28 · 11760 阅读 · 2 评论 -
受用不尽的Gradle使用方法与技巧
Gradle尽管比Android Studio早出现,但直到成了官方IDE之后,Gradle才逐渐流行起来。然而,我们是否将这个强大的自动化构建系统的优势发挥地淋漓尽致了呢?项目与build的特定全局变量用gradle可以自动生成BuildConfig类,其中能够生成附加字段。这对配置服务器URL之类的工作十分有用,使用它也能轻松开启或关闭功能。defaultConfig转载 2016-01-04 09:43:46 · 2700 阅读 · 0 评论 -
Android模拟器IMEI和IMSI修改示例
在UltraEdit中打开Android模拟器文件emulator-arm.exe,查找ASCII内容CIMI:如上图所示,红色划线处为IMSI,蓝色划线处为IMEI。修改IMSI[1]查找:33 31 30 32 36 30 30 30 30 30 30 30 30 30 30替换为:34 36 30 30 31 35 39 37 31 32 31 32 33转载 2013-10-11 09:45:51 · 15398 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: com.umeng.analytics.MobclickAgent 解决方法
android系统启动的时候报错java.lang.NoClassDefFoundError: com.umeng.analytics.MobclickAgent,发现此类是友盟SDK的类。我在libs目录下找到了umeng_sdk.jar,并没有缺少jar包,于是baidu了一把。网上提到解决方式是:ADT 18对引用的jar有要求,要求jar包要放到项目下的libs里才可以找到,否则apk转载 2013-07-20 10:27:37 · 4760 阅读 · 0 评论 -
ApkTool反编译和重新打包
有时会需要反编译APK,各人有各人的原因,你都懂的…… 准备工作: 下载APKTool,通过下面这个连接进行下载,https://code.google.com/p/android-apktool/downloads/listwindows下只需要下载这两个文件包即可:apktool1.5.2.tar.bz2和ap原创 2013-04-23 15:04:40 · 29665 阅读 · 7 评论 -
Android4.0框架–【Activity-Loader】
在Android3.0介绍中,Loader(加载器)使得在Activity或Fragment中异步加载数据变得很容易。Loaders有以下特性: 在每个Activity和Fragment中都是可用的。提供异步的数据加载机制能够检测数据源,当内容发生变化时提供新的结果。当配置更改需要重建时他们会自动重新连接到最后一个Loader的光标处。 Loader API S转载 2013-03-06 12:38:05 · 2454 阅读 · 0 评论 -
Android之Fragment(官网资料翻译)
Fragment要点Fragment作为Activity界面的一部分组成出现可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。在Activity运行过程中,可以添加、移除或者替换Fragment(add()、remove()、replace())Fragment可以响应自己的输入事件,并且有自己的生命周期,转载 2012-07-18 14:55:32 · 2086 阅读 · 0 评论 -
Android本机联系人操作点滴
1、在2.2或以上,有专门的sort_key字段来存放拼音和中文,如联系人“张旭”会在sort_key字段中存放“zhang 张 xu 旭”但在2.1的版本中,却找不到sort_key字段,联系人的拼音是存放在phonetic_display_name字段中,如联系人“张旭”会在phonetic_display_name字段中存放“zhang xu ”原创 2012-02-07 17:01:59 · 1339 阅读 · 3 评论 -
AsyncTask 使用心得
之前一直使用Handler,最近在试着使用AsyncTask 时由于几个细节没注意老是不顺利。1、doInBackground是用来执行费时的操作,如下载……,但不能在doInBackground中更新UI界面,如果想要更新UI界面,需要在onPostExecute中执行2、doInBackground方法和onPostExecute的参数必须对应,这两个参数在AsyncTask声原创 2012-02-05 17:03:19 · 4014 阅读 · 0 评论 -
调用Android短信软件进行短信群发
最近想做一个可以群发短信的功能,但又不想自己做一个发短信的界面,之前也做过利用Intent调用系统发短信功能,这个网上也有大把人发过。 String mobile = "18900000000" Intent intent = new Intent(Intent.ACTION_VIEW); in原创 2011-12-22 16:36:35 · 10613 阅读 · 7 评论 -
ActivityGroup中切换Activity
通过在网上搜索,找到了很多关于ActivityGroup的用法,里面主要是“农民伯伯”的那个范例,让我学到了如何利用ActivityGroup实现底部固定,中间可动态加载Activity的界面。但一直有一个难言之隐没有解决:如果通过底问按钮打一个Activity A后,在A中点击某个按钮,想打开另一个Activity B,此时如果是直接使用Intent,然后startActivity(intent)打开B的话,则会在全屏打开B,而不能保持在ActivityGroup中间打开,保持底部按钮固定。后来一直没有想原创 2011-05-05 17:34:00 · 6360 阅读 · 1 评论 -
Android中通过代码改变系统文件都写权限
在Unix和Linux的各种操作系统下,每个文件(文件夹也被看作是文件)都按读、写、运行设定权限。读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1。所以,rw-r--r--用数字表示成644。反过来说777就是rwxrwxrwx,意思是该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限。Android中可用通过adb shell 方法修改文件的权限,有时转载 2016-01-21 09:00:58 · 2520 阅读 · 1 评论 -
Android M 新的运行时权限开发者需要知道的一切
Sam其它相关参考:http://www.captechconsulting.com/blogs/runtime-permissions-best-practices-and-how-to-gracefully-handle-permission-removalhttp://www.cnblogs.com/zqlxtt/p/4873831.htmlAndroid M 的名字转载 2016-01-06 10:00:52 · 3312 阅读 · 0 评论 -
android中bitmap压缩的几种方法的解读
最近在研究微信的sdk,在缩略图这遇到了一点问题。微信的缩略图要求是不大于32k,这就需要对我的图片进行压缩。试了几种方法,一一道来。1、质量压缩法:代码如下 ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress转载 2016-05-10 17:09:47 · 4673 阅读 · 0 评论 -
解决AndroidStudio导入项目在 Building gradle project info 一直卡住
Android Studio导入项目的时候,一直卡在Building gradle project info这一步,主要原因还是因为被墙的结果。gradle官网虽然可以访问,但是速度连蜗牛都赶不上...解决办法主要有两种,一是直接下载gradle离线包,二是修改项目的gradle-wrapper.properties里的gradle版本为自己电脑已有的版本。离线包下转载 2017-07-11 09:14:25 · 362 阅读 · 0 评论 -
FloatingActionButton滚动时的显示与隐藏小结
FloatingActionButton的显示和隐藏其实很容易谷歌到,之所以写这篇文章是感觉这个知识点有点让人困惑,可以找到多种实现方式,而且兼容包里的FloatingActionButton还不断的变化。 基本来说,如果是使用官方的FloatingActionButton,列表滚动时的显示与隐藏都是使用自定义FloatingActionButton.Behavior来实现的。Ne转载 2017-06-01 12:24:02 · 1543 阅读 · 0 评论 -
Android -- is 32-bit instead of 64-bit
用 android studio 开发 app 的时候发生了java.lang.UnsatisfiedLinkError: dlopen failed: "lib_xxx.so" is 32-bit instead of 64-bit最后是如此解决的,在build.gradle中加上defaultConfig { ...... ndk { abiFilt转载 2017-05-23 17:23:55 · 1067 阅读 · 0 评论 -
Android工程方法数超过65535,解决办法 transformClassesWithDexForDebug
转自:http://www.jianshu.com/p/f046b3f49e49Application要继承MultiDexApplication,即 public class MainApplication extends MultiDexApplication当方法数大于66535时,报错:Error:Execution failed for task ':ttt:转载 2017-01-18 15:38:52 · 483 阅读 · 0 评论 -
Mate8 Root后如何升级系统
升级前準備1. TWRP工具2. 电腦已装Hi suite3. TF卡内存root安裝zip文件。4. 備份手机(如必要) 刷了会恢复出厂设置,所有东西都没有的,所以请备份!!!!!!!!!!!!!开始升级1. 到super u去解root2. 用电脑的TWRP工具刷入官方 REC3. 重起手机,用华為hi suite的系统更新升级4. 升级后再用电脑的原创 2016-12-09 14:57:31 · 2275 阅读 · 0 评论 -
华为Mate8 ROOT
基本步骤:1、申请解锁码2、解锁3、刷入recovery(要选对对应版本,EMUI4.1就要选择对应4.1的,在这里可以下载http://www.huaweirom.com/mate8/3804.html)4、通过recovery刷入ROOT包**Root跟boot没有直接关系,如果不需要刷boot,则可以跳过直接刷入ROOT就行参考下面文章(转自:转载 2016-12-08 13:56:31 · 4616 阅读 · 0 评论 -
Android UI性能优化详解
设计师,开发人员,需求研究和测试都会影响到一个app最后的UI展示,所有人都很乐于去建议app应该怎么去展示UI。UI也是app和用户打交道的部分,直接对用户形成品牌意识,需要仔细的设计。无论你的app UI是简单还是复杂,重要的是性能一定要好。UI性能测试性能优化都需要有一个目标,UI的性能优化也是一样。你可能会觉得“我的app加载很快”很重要,但我们还需要了解终端用户的期望,是转载 2016-10-06 17:33:00 · 582 阅读 · 0 评论 -
Android 禁止初始时ScrollView自动滚动到底部
用ScrollView,加载数据时有时会出现ScrollView自动滚动到底部,解决办法很简单,在ScrollView子标签LinearLayout里面加上: android:focusable="true" android:focusableInTouchMode="true"即可。如图:如果出现某个控件抢占焦点造成的转载 2016-11-07 16:45:49 · 379 阅读 · 0 评论 -
Android Studio 缓存文件夹配置
Android Studio的缓存文件默认安装的AndroidStudio会在C:\Users\YourName\ .xxx 缓存一些数据主要有四个文件夹,分别是.android 这个文件夹是Android SDK生成的AVD(Android Virtual Device Manager)即模拟器存放路径.AndroidStudio 配置、插件缓存文件夹、最近打转载 2016-09-04 11:04:10 · 2673 阅读 · 0 评论 -
两个Android选择文件对话框
这个项目以及代码中使用的未在下面代码给出源码的方法都在这里:https://github.com/NashLegend/LegendUtils第二种对话框的源码在这里:https://github.com/NashLegend/LegendExplorer/,这是一个文件浏览器源码。Android文件对话框,一般用的分两种。一是我们自转载 2016-04-22 12:37:14 · 7773 阅读 · 0 评论 -
Video Cropping with Texture View
In this tutorial we are going to create an Android application which will do following:Display a video from assets folder using TextureViewWhen a user touches the screen, TextureView must re转载 2016-05-06 10:00:23 · 728 阅读 · 0 评论 -
友盟自动更新技术解决方案(安卓版)
系统结构友盟自动更新系统的示意图如下:图中手机代表客户端。服务端的各个模块描述如下:WebConsole:提供上传更新包的网站操作界面。FS:文件系统,存储apk文件和增量更新包,增量更新的原理后文会提到。DB:用于存储文件的属性,例如版本号,更新描述,文件的md5等。Server: 接收客户端请求,返回文件下载链接。CDN:提供转载 2016-05-16 15:44:51 · 1006 阅读 · 0 评论 -
SharedPreferences的使用
SharedPreferences是用来保存一些用户的配置信息,相当ini文件保存用户配置一样!其好处这里不就废话了,直接进入主题说明怎么使用!SharedPreferences的使用包括两方面:利用SharedPreferences读取保存的配置;利用SharedPreferences保存用户的配置。利用SharedPreferences读取保存的配置,需要先声明一个SharedPreferences变量,然后getSharedPreferences得到一个SharedPreferences实例对象,即得原创 2011-03-21 00:32:00 · 4334 阅读 · 0 评论