Android
文章平均质量分 63
吃饱了想睡
这个作者很懒,什么都没留下…
展开
-
android在线下载并安装APK
在做项目2期有个功能是不可忽视的,那就是对老版本的迭代。今天和大家分享下在线下载APK并进行安装1.获得当前的版本号: public int getAppVersionCode() { PackageManager manager = this.getPackageManager(); PackageInfo info; tr原创 2015-09-18 14:30:55 · 933 阅读 · 0 评论 -
JAVA字符串格式化-String.format()的使用
转自:http://blog.csdn.net/lonely_fireworks/article/details/7962171常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String forma转载 2016-02-17 15:40:29 · 303 阅读 · 0 评论 -
android自定义view之刷新验证码
今天大家和分享下登入时候经常遇到的问题,这边只是个模型:首先自定义view来onMeasue 作为存放验证码的地方,重写的view需要重写onDrawn和onMeasue 2个方法。onMeasue 这个方法是用来测量长宽: @Override protected void onMeasure(int widthMeasureSpec, int heightMeasu原创 2016-03-17 15:23:34 · 835 阅读 · 0 评论 -
android子线程handler获取数据
今天和大家分享下android 获取接口时,开通子线程进行异步获取数据。我这边选用的是handler机制。在handler有多种获取方法。今天介绍的是一种比较流行,效率较高的一种方法:obtainMessage()。这种用的相对较少,毕竟常见的是sendMessage()。我们先来对比下,首先看sendMessage的写法private Handler handler = new原创 2016-02-22 15:28:18 · 2461 阅读 · 0 评论 -
Android中设置TextView的颜色setTextColor
Android中设置TextView的颜色setTextColor转自:http://txlong-onz.iteye.com/blog/1249609 android中设置TextView的颜色有方法setTextColor,这个方法被重载了,可以传入两种参数。 Java代码 public void setTextColor(in转载 2016-02-22 15:36:23 · 433 阅读 · 0 评论 -
运用fastjson+SharedPreferences 保存、读取复杂数据
存储数据:SharedPreferencesUtil.putString(getActivity(), getString(R.string.faxian_title), JSON.toJSONString));//tmpSubject是一个复杂的类读取: String s = SharedPreferencesUtil.getString(getActivity(),g原创 2016-02-25 15:45:20 · 984 阅读 · 0 评论 -
android textview改变部分文字的颜色和string.xml中文字的替换
一:TextView组件改变部分文字的颜色: Java代码 TextView textView = (TextView)findViewById(R.id.textview); //方法一: textView.setText(Html.fromHtml("红色其它颜色")); //方法二: String text转载 2016-03-11 11:04:55 · 747 阅读 · 0 评论 -
okhttp+fastjson+三套环境的android—demo
该demo整合了okhttp+fastjson,对网络请求较彻底的封装解析。并用接口进行了调试。基本上可以直接试用于APP网络请求搭建具体的请看demo吧,内容比较多,直接上源码吧:http://download.csdn.net/detail/u013651405/9481737原创 2016-04-05 17:18:58 · 1265 阅读 · 0 评论 -
各个JSON技术的比较
一 、各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.转载 2016-04-05 18:12:04 · 418 阅读 · 0 评论 -
android studio常用快捷键
Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Space 自动转载 2016-04-26 11:58:34 · 242 阅读 · 0 评论 -
SwipeRefreshLayout里面嵌套listview的使用
SwipeRefreshLayout是android官方的下拉刷新控件; 它内部有且只能有一个子控件; 简单讲下原始代码的原理: 下拉时,计算手指移动距离,如果超过一个系统默认的临界值mTouchSlop,该事件就不下发到子控件进行处理,而是SwipeRefreshLayout自己处理。变量mDistanceToTriggerSync指定了下拉刷新的临界值,如果下拉原创 2016-02-15 16:49:00 · 2294 阅读 · 0 评论 -
android客户端点击图片,显示密码可见
直接上代码吧:应用:mPasswordFoundText.setOnClickListener(this);ImageButton visibleBtn = (ImageButton) findViewById(R.id.psd_visible);visibleBtn.setOnClickListener(new PsdVisibleChangeListener(visi原创 2016-02-15 11:56:34 · 1760 阅读 · 0 评论 -
DialogFragment的使用+j接口回调
虽然android有Alterdialog和Progressiondialogl两种,但是这两周都太局限了,有个折中的方法是重新定义个layout,并把该layout设置成dialog样式,这样可以间接的自定义个dialog样式,但是现在android提供了一个更基础的类DialogFragment。然后利用接口回调的方法对点击事件进行监听。1.DialogFragment.class@S原创 2015-08-21 15:52:41 · 2097 阅读 · 0 评论 -
java常见的枚举的写法
项目一忙起来,连写博客的心情斗米有了,这边也就做个记录关于java中常见枚举的记录public enum EnumOperationPermission implements IEnumBehaviour { SAVE("保存", 0), SUBMIT("提交", 1), BACK("退回", 2), VIEWCOMMENTS("查看意见", 3), SIGN("签发", 4), D原创 2015-09-15 14:22:27 · 6066 阅读 · 1 评论 -
在移动端获取服务端文件的大小 this.fileSize = conn.getContentLength();
加上以下这句话可以防止filsize=0或者=-1的情况,原因是因为:在默认情况下,HttpURLConnection 使用 gzip方式获取,文件 getContentLength() 这个方法,每次read完成后可以获得,当前已经传送了多少数据,而不能用这个方法获取 需要传送多少字节的内容,当read() 返回 -1时,读取完成,由于这个压缩后的总长度我无法获取,那么进度条就没法计原创 2015-09-24 10:13:31 · 1742 阅读 · 0 评论 -
Fragment的使用
创建Fragment要创建一个Fragment,你需要创建一个Fragment的子类。Fragment的代码很像Activity。他有一些和Activity很像的回调函数,比如onCreate,onStart,onPause和onStop。事实上,如果你要想现有的应用程序使用Fragment,你只需要把你的Activity回调函数方法的代码移动到Fragment相关的回调中去就原创 2015-10-15 14:24:03 · 340 阅读 · 0 评论 -
Android 、fragment、replace重叠问题
在前几天的项目中遇到一个很纠结的问题,如题。问题描述:点击原先Fragment上面的按钮,弹出新的Fragment,hide() 、replace()、 add()三个方法傻傻分不清楚。然后再百度上面转了好久都没有发现有什么非常好的解决方法。想到hide的时候用不能获取当前的Fragment ,最后查看源码的时候发现fFragment中有个findFragmentByTag根据一开原创 2015-12-11 12:56:54 · 2134 阅读 · 0 评论 -
viewpage+fragment+下划线滑动
今天和大家分享下viewpage+下划线的使用,Demo框架是使用viewpage+fragment的使用,这里就不介绍了,最下方有demo下载地址,着重看下划线这块。现在先看下效果图:滑动fragment的时候,字体下方的下划线会跟着滑动。关键在与viewpage的重写3个方法(摘自网络)1.onPageSelected(int position):这个方法有一个参数positi原创 2015-12-11 08:27:04 · 1374 阅读 · 0 评论 -
FastJson的使用
相信在开发过程中数据经常和服务端打交道,怎么尽可能的提高服务端与客户端数据交流的效率是一件非常有意义的事情在现今的技术中,一般会选用gson、jackjson、fastjson。今天和大家分享的是fastjson,是阿里巴巴的一个开源工具,,它支持各种JDK类型,包括基本类型、JavaBean、Collection、Map、Enum、泛型等fastjson 解析json字符串为四种原创 2016-01-20 11:16:15 · 439 阅读 · 0 评论 -
Android中bindService的使用方法
bindService用于绑定一个服务。这样当bindService(intent,conn,flags)后,就会绑定一个服务。这样做可以获得这个服务对象本身,而用startService(intent)的方法只能启动服务。 bindService方式的一般过程:①新建Service类BindService。在BindService类里新建内部类MyBinder,继承自Bin转载 2016-01-07 16:37:16 · 678 阅读 · 0 评论 -
android edittext不弹出软键盘
EditText 不弹出软件键盘2011-05-17 12:291.EditText默认不弹出软件键盘 方法一: 在AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为adjustUnspecified|stateHidden 例如:<activity android:name=".Main"转载 2016-05-10 18:16:27 · 346 阅读 · 0 评论 -
SwipeRefreshLayout+ListView实现下拉刷新自定义上拉加载
public class RefreshLayout extends SwipeRefreshLayout implements AbsListView.OnScrollListener { /** * 滑动到最下面时的上拉操作 */ private int mTouchSlop; /** * listview实例 */转载 2016-06-07 15:24:10 · 430 阅读 · 0 评论 -
gradleb编译的finished with non-zero exit value问题
转载自:http://www.jacpy.com/2016/04/22/android-studio-error-collection.html在使用Android studio过程中,使用gradle编译的时候总会出现一些问题,下面是几个常见问题的解决方法。被编译的代码或资源有问题( finished with non-zero exit value 1):出现这转载 2016-06-29 16:30:51 · 2365 阅读 · 0 评论 -
JVM简介
引述:简单描述下jvm的垃圾回收策略,比如引用计数、标记清除等策略。JVM基本构成 JVM 主要包含以下部分 1. 类加载器(ClassLoader):在 JVM 启动时或者在类运行时将需要的 class 加载到 JVM 中,下图为从 Java 源文件到 JVM 的整个过程。2.执行引擎: 负责执行 class 文件中包含的字节码指令 3.内存区: 是在 JVM 运...原创 2018-04-09 14:32:10 · 340 阅读 · 0 评论 -
研究MVC、MVP、MVVM三种常见的设计模式
简介所谓的设计模式其实是一种框架结构的体呈现,目的分离应用程序的页面展示,网络数据交互,数据呈现,随着项目复杂度的不断变化,新的框架也在不断的更新迭代,从最早的MVC模式,到后面的MVP以及MVVM,均是对项目的一种重构。MVC设计框架这个比较简单,适合一些中小型的项目。关键字MModule,模型层,用户数据管理,通常是一些 javaBean, db,share...原创 2018-06-13 14:55:47 · 1613 阅读 · 0 评论 -
Android 8.0源码
android-2.2_r1链接: https://pan.baidu.com/s/1qYfwxEO 密码: r217android-2.3.7_r1链接: https://pan.baidu.com/s/1qYqRB1E 密码: qceiandroid-4.1.1_r1链接: https://pan.baidu.com/s/1mhXwVgc 密码: qidjandroid-4.3_r...转载 2018-12-14 10:29:21 · 429 阅读 · 0 评论 -
Android WMS、 ViewRootImpl、Surface之间的关系
前言WindowManager虽然在平常开发中用的不多,但是它却是一个非常重要的类,此模块管理着 Android 中所有的窗口展示,包括我们熟悉的 Activity 、Dialog 等视图。所有需要显示到屏幕上的内容都是通过 WindowManager 来实现的。此文只是一个基础入门,主要是讲解 WindowManager 和 WindowManagerService(简称 WMS)。关系图...原创 2018-12-20 11:29:46 · 2086 阅读 · 0 评论 -
单例模式-Android源码LayoutInflater.inflater()解析View视图
再说源码之前,我们分析一波单例模式在Android源码中的体现:#类型恶汉模式:懒汉模式:双重锁模式:枚举单列模式:使用此模式,是为了防止对象在反序列化时重新生成新的对象。所以需要进行序列化操作,并且里面的成员变量如果不是Java的基本类型也需要进行序列化操作。容器单例模式:通过临时存储空间来存储对象,比如HasMap#伪代码#UML#源码中的体现:##LayoutInfla...原创 2018-12-19 10:20:39 · 336 阅读 · 0 评论 -
Android多进程简介
简介在四大组件中指定 android:process 属性,就可以轻松开启多进程的模式。开启开启的方法一般分为2种,先说一个非常规的,比如通过 jni 在 native 层直接 fork 出一个,比如我们常见的 AMS 的创建,在应用层很少见,常用的还是下面这种方式。 <activity android:name=".BinderSecondActivity" ...原创 2019-03-14 01:07:33 · 213 阅读 · 0 评论 -
Android消息机制
概述Android 的消息机制主要指的是 Handler 的运行机制,Handler 的运行需要底层的 MessageQueue 和 Looper 的支撑,而传输的对象是 Message。关系图名词解析Message:消息,其中包含了消息ID、消息处理对象以及处理的数据等,由MessageQueue统一列队,最后还是有Handler处理。Handler:处理者,负责Message的发...原创 2019-03-11 23:16:07 · 149 阅读 · 0 评论 -
最新个推Android 推送 SDK Maven 集成
概述公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来。其实早在自己大二的时候就集成过个推,溜达一圈又回来集成个推了,个推真是个磨人的小妖精啊…啊…,现在发现个推比起当年集成起来真的方便多了,写下这篇文章,让同学们可以更加快捷地集成个推推送。思维导图详...原创 2019-08-20 22:25:42 · 2054 阅读 · 5 评论 -
Android 多厂商推送集成
前言按劳分配,多劳多做。好不容易集成完了个推的推送 SDK,美滋滋的准备划一会儿水,鸟哥吩咐为了保证应用杀死后也可以接收到推送,并且降低服务端的维护多渠道的开发成本,还得集成下个推的多厂商渠道。等等!!!什么是多厂商?! 我没看到官网文档里面有任何关于多厂商的字样。鸟哥慢悠悠道来这是 VIP 才有的专属通道。行吧,又去联系他们的支持了,港真他们技术支持发的集成资料我看的还是不太明白(也许是我太菜...原创 2019-09-19 10:26:27 · 6280 阅读 · 3 评论 -
java的单例模式,为什么需要volatile
目前看了java并发的书,记录一下。对于java的单例模式,正确的代码应该为:public class TestInstance { private volatile static TestInstance instance; public static TestInstance getInstance() { //1 if (instance == n...转载 2018-03-20 16:33:54 · 542 阅读 · 0 评论 -
Android无权限弹悬浮窗适配8.0
背景&nbsp;&nbsp;相信大家在开发的过程中肯定会遇到创建悬浮框需要权限的问题,如果不申请权限会出现以下错误: token null is not valid; is your activity running?&nbsp;&nbsp;或者类似的错误,这类的文章在百度上面经常可以查看到,但是基本上都是停留在Android6.0以下的,文章比较老旧。随着6.0之后的巨大变化...原创 2018-02-23 10:12:01 · 10692 阅读 · 2 评论 -
android控制系统回退按钮再按一次退出程序
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((System.currentTimeMillis() - mExitTime) > 2000) { UIHelper.makeTo原创 2016-06-29 17:02:57 · 838 阅读 · 0 评论 -
友盟自定义分享到朋友圈只显示图片
友盟分享总结:case wechat_friend: sp.setPlatform(sharePlatForm.media); sp.withTitle(shareModel.getTitle()); sp.withText(TextUtils.isEmpty(shareModel.getInfo()) ? shareModel.getTitle() : share原创 2016-06-30 11:38:53 · 3599 阅读 · 1 评论 -
Android工具类搜集
1.检测图片是否被加工过 /** * * @param 图片路径 * @param 检验的数据集 * @return */ public static String checkImagePs(String path, List psKey) { File file = new File(path);原创 2016-07-04 11:13:56 · 363 阅读 · 0 评论 -
webview和h5的交互
现在APP中经常会发现很多很多的H5页面,所以webview与js的交互显得非常重要:一.理论: 在交互这块我们会涉及到两个场景:一种是h5直接调用原生的,这个时候在原生这边登录成功后,我们会执行一段协商好的js代码,callback传递一些参数返回给h5;另外一种是原生登录成功后,服务端会返回给我们cookie,并利用框架的属性把这个cookie进行持久化,这样下次请求的时候则自原创 2016-08-31 11:41:28 · 6718 阅读 · 0 评论 -
Android Studio编译、导入aar库的方法
1.如何将一个工程编译成aar?在工程的build.gradle中配置[plain] view plain copyapply plugin: 'com.android.library' 注意:在defaultConfig中不要定义applicationId,因为aar是库,无applicationId2.如转载 2016-08-22 18:46:07 · 4961 阅读 · 0 评论 -
微信小程序初体验
微信小程序可谓是今天最火的一个名词了,一经出现真是轰炸了整个开发人员,当然很多App开发人员有了一个担心,微信小程序的到来会不会给移动端App带来一个寒冬,身为一个Android开发者我是不相信的,即使有,那也是很遥远的未来。 不管微信小程序是否能颠覆当今的开发格局,我们都要以好奇的心态去接收,去学习。不排斥新技术,所以,心动不如行动,赶紧先搭建一个微信小程序开发工具。那么接下来就让我们一起来转载 2016-09-23 11:28:11 · 6424 阅读 · 4 评论