Android应用开发
voidreturn
Giter;代码洁癖,完美主义,挑刺,质疑,崇尚通过优雅的方式解决问题;从Linux Kernel,Driver折腾到Android App。
展开
-
Android应用开发—setResult()的调用时机
本文转载自setResult()的调用时机,此处做了重新的排版,只是感觉markdown的排版比较好看些,侵删。今天遇到这样一个问题,我在Activity-A中用startActivityForResult()方法启动了Activity-B,并且在B中通过setResult()方法给A返回值,由于某些原因不能在setResult()之后立刻调用finish()函数,只能通过用户按Back键自己退出转载 2017-12-03 19:50:34 · 532 阅读 · 0 评论 -
Android应用开发—Android 消息处理机制:Handler&Message
Android 消息处理机制:Handler|Message转载 2018-01-26 19:26:04 · 254 阅读 · 0 评论 -
Android应用开发—AsyncTask
摘录自 Android 多线程—–AsyncTask详解AsyncTaskAsyncTask:异步任务,从字面上来说,就是在我们的UI主线程运行的时候,异步的完成一些操作。AsyncTask允许我们的执行一个异步的任务在后台。我们可以将耗时的操作放在异步任务当中来执行,并随时将任务执行的结果返回给我们的UI线程来更新我们的UI控件。通过AsyncTask我们可以轻松的解决多线程之间转载 2018-01-27 15:28:44 · 226 阅读 · 0 评论 -
Android应用开发—FragmentManager如何管理fragments
本文主要摘录自Android中使用FragmentManager管理fragments 和 浅谈FragmentManager与fragment之一二事先讲下自己对fragment的理解:对于fragment,有太多官方文档和博文来介绍,此处不做转述:我感觉android提供fragment这种组件给了开发者更多的“创造”的机会,开发者可以基于fragment自己创造、管理页面的处理转载 2018-01-27 17:24:18 · 17281 阅读 · 0 评论 -
Android应用开发-图片加载库Glide
GlidePicasso和Glide之间的区别:Picasso 仅仅缓存了全尺寸的图像;然而 Glide 缓存了原始图像,全分辨率图像和另外小版本的图像。转载 2018-01-28 16:03:14 · 300 阅读 · 0 评论 -
Android Studio出现Failed to open zip file. Gradle's dependency cache may be corrupt问题的解决
删除了/Users/tycao/.gradle/wrapper/dists目录下对应的gradle-X.X-all目录重新sync了原创 2018-01-29 13:48:54 · 2520 阅读 · 0 评论 -
Android应用开发-onNewIntent()
转载自Android中 activity 的onNewIntent函数转载 2018-01-29 21:22:50 · 264 阅读 · 0 评论 -
Android应用开发—onSaveInstanceState方法什么时候被调用?
转载自onSaveInstanceState方法什么时候被调用?(转载/整理)在 Activity 被销毁之前被调用来保存每个实例的状态,这样就可以保证该状态能够从 onCreate(Bundle) 或者onRestoreInstanceState(Bundle)恢复过来。 本方法在 Activity 可能被销毁前调用,这样当该 Activity 在将来某个时刻重新回来时可以恢复其之前的状转载 2018-01-30 16:09:34 · 845 阅读 · 0 评论 -
历时四年,给Google提交的Android Framework Bug终于被Fixed了
历时四年,Google终于修复了一个我发现的Android Framework Bug 2014年在做一个Android终端设备开发过程中,发现了一个Android Framework层的Bug,给Google提交了issue和解决方案,和外界传言一致Google一般不太在意个人开发者提交的issue,直到2017年12月,再次提交了issue,在几轮沟通无果下,忍不住喷了Google几句...原创 2018-03-30 00:03:16 · 2141 阅读 · 2 评论 -
Android应用开发—Application
What is ApplicationApplication和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己的Application,也很简单创建一个类继承 Application并在m...转载 2018-05-28 14:22:46 · 271 阅读 · 0 评论 -
加载一张图片到ImageView到底占据多少内存
简介Android中经常要通过ImageView进行图片资源显示。在加载图片时,首先要考虑的两个因素就是体验问题和性能问题。其中,体验问题是指图片显示的是否正确(例如Universal-Image-Loader在适配Adapter图片资源时会导致图片显示错位),分辨率是否合适等。而体验问题主要是指图片加载速度,以及更加重要的图片加载的内存占用问题。本文重点介绍ImageView加载图片中的...转载 2018-07-19 16:05:11 · 626 阅读 · 0 评论 -
利用fastjson对json转map的操作
String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\&转载 2018-08-22 11:19:16 · 1611 阅读 · 0 评论 -
Android Bluetooth BLE相关开发资源汇总
Android开启蓝牙开关检查系统蓝牙是否开启BluetoothManager bluetoothManager = (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE);BluetoothAdapter mBluetoothAdapter = bluetoothManager.getAdapter();mB...转载 2018-09-27 17:23:59 · 434 阅读 · 0 评论 -
Android应用开发——文件目录
Android 存储位置及 API一、内部存储应用安装后都会在Android 根目录生成 /data/data/packagename,当前应用读取不需要读写权限注意: 有些开发者可能看到过应用的根目录为 /data/user/0/packagename 的情况,这里解释一下,Android 4.2 版本添加了同一设备可以登录不同用户的功能(由于专利原因仅限于平板电脑,手机不支持此功能),...转载 2018-09-30 01:40:17 · 354 阅读 · 0 评论 -
Android应用开发——service连接泄露异常:android.app.ServiceConnectionLeaked: that was originally bound here
在做service开发过程中,大部分可能会遇到以下异常,该异常仅通过log输出,并不会导致app crash。E/ActivityThread: Activity com.example.image.all_samples.Main2Activity has leaked ServiceConnection com.example.image.all_samples.Main2Activity$...原创 2018-10-19 14:39:23 · 7187 阅读 · 0 评论 -
Android应用开发——onStop的调用时机
onStop的调用时机,网上搜索到的说法大概是:“ onStop的调用是“The activity is no longer visible”,也就是完全不可见的时候调用的,这个完全不可见真的就是指视觉上的完全看不到而已,无论是按home键返回桌面,还是启动另一activity把原activity完全遮住,都会调用onStop。”开发中遇到个问题,发现onStop的调用时机受下一个页面的影响,本...原创 2019-03-21 14:38:05 · 2030 阅读 · 0 评论 -
Android Camera 2.0 Api
二次图像处理Camera2的API扩展了对YUV的支持,及图像再处理支持。要知道是否据有这个能力,可以调getCameraCharacteristics()方法,检查REPROCESS_MAX_CAPTURE_STALL这个键值 。如果设备支持再处理,则可以调用createReprocessableCaptureSession(),创建一个再处理摄影设备,然后创建输入缓冲再处理请求。使用Ima...转载 2019-07-09 21:10:44 · 749 阅读 · 0 评论 -
Android应用开发—如何解决handler的警告:Handler Class Should be Static or Leaks Occur
转自android handler的警告Handler Class Should be Static or Leaks Occur在使用Handler更新UI的时候,我是这样写的:public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler()转载 2018-01-26 19:14:12 · 340 阅读 · 0 评论 -
一个记录最近搜索历史的LRU实现
对于很多有搜索需求的功能,一般需要展示下最近n次的历史搜索记录,主要有以下几个功能点:最近搜索条目放在最前面,最早的搜索记录放在最后。只记录最近n条数据,如果超过n条搜索记录,删除搜索时间最久远的记录。没有重复的搜索项,如果新搜索的关键字已存在,则将该关键字提到最前面,删除原位置关键字。可方便的持久化,并可以通过读取持久化数据,恢复原纪录历史。基于以上这些条件,不难看出这就是一个原创 2018-01-25 20:55:43 · 1067 阅读 · 0 评论 -
Android应用开发—Intent组件详解
转载自:Android中Intent组件详解Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件。Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙述其所期望的服务或动作、与动作有关的数据等。Android则根据此Intent对象之叙述,负责配对,找出相配的组件,然后将 Intent对象传转载 2018-01-07 18:00:43 · 261 阅读 · 0 评论 -
Android Studio常用快捷键
注:本文大部分内容转载自——码个蛋微信公众号里的“熟练这些,才会知道 Android studio 有多高效”由于是微信公众号通过传送门看的,没有原文链接。显示方法的参数 当我们使用一个方法的时候,会在刚开始的时候显示出所有的参数。但是过一会可能就不存在了。这个时候如果你想知道下一个参数是什么类型,或者看一下所有参数。 快捷键: command + P (mac) ctrl + P (win原创 2017-12-02 22:51:24 · 556 阅读 · 0 评论 -
Android应用开发—eventBus发布事件和事件处理的时序关系
占坑,简单说明下eventBus发布事件和事件处理的时序关系。原创 2017-10-24 20:43:56 · 474 阅读 · 0 评论 -
Android应用开发—重载fragment构造函数导致的lint errors
背景:在一次release打包中发现lint报以下错误: Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment] 根据后面的log提示是由于重载了fragment的构造函数原创 2017-10-21 12:41:47 · 599 阅读 · 0 评论 -
Android应用开发—TabLayout定制化Tab样式
TabLayout的使用详解基于此文,了解下setCustomView(childView)的使用。原创 2017-10-09 15:01:05 · 732 阅读 · 0 评论 -
Android应用开发—浅谈MVX模式
MVX模式的文章太多了,这里不会再重述,关键我还不太懂,本文会从自己的一些思考,分下MVX的分离思想,先占个坑!Android应用架构这篇文章最后讲到:Activity和Fragment变得非常轻量。他们唯一的职责就是建立/更新UI和处理用户事件。因此,他们变得更容易维护。 我不太赞同这个做法:如果view中处理用户事件,那么view就和特定的数据逻辑绑定了,这样这个view很难复用,如果vi原创 2017-10-08 20:49:09 · 524 阅读 · 0 评论 -
Android应用开发—ViewPager FragmentPagerAdapter和FragmentStatePagerAdapter下Fragment的生命周期
ViewPager配合不同的PagerAdapter,对应Fragment的生命周期有着不同的表现,了解这个生命周期机制对于开发者选择合适的PagerAdapter实现不同的效果,有着很大的帮助。FragmentPagerAdapter和FragmentStatePagerAdapter的区别:FragmentPagerAdapter:类内的每一个生成的 Fragment 都将保存在内存之中,因此原创 2017-10-07 17:13:32 · 877 阅读 · 0 评论 -
android应用开发—获取当前运行的services列表
public static void listServices(Context mContext) { ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); List<Activit原创 2017-09-27 10:33:55 · 1360 阅读 · 0 评论 -
Android应用开发—RecyclerView绘制蒙层
背景:如何在跨越两个或两个以上的item绘制一个view,该view需要跟随recyclerView的滑动而整体移动。原创 2017-08-30 16:33:48 · 1480 阅读 · 0 评论 -
Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性
转载自Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性ImageView的scaleType的属性可设置为matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXYandroid:scaleType=”center” 保持原图的转载 2017-08-28 11:50:47 · 311 阅读 · 0 评论 -
Android应用开发—通用的GridView网格分割线
注本文基于 Android RecyclerView 使用完全解析 体验艺术般的控件 中关于GridView网格分割线部分代码扩展而来。public class DividerGridItemDecoration extends RecyclerView.ItemDecoration { private static final int[] ATTRS = new int[]{android原创 2017-08-27 19:07:51 · 445 阅读 · 0 评论 -
Android应用开发—数据更新问题的思考
占位符原创 2017-08-20 22:36:36 · 320 阅读 · 0 评论 -
Android应用开发—LayoutParams的用法
Android应用开发—TextView的动态创建 这篇文章讲到了“TextView控件布局位置的控制”,主要依赖于RelativeLayout.LayoutParams的使用,本文简单介绍下LayoutParams的用法 注:本文大部分内容参考android,利用layoutParams代码动态布局空间位置和总结:代码中添加LinearLayout和RelativeLayout布局或者是一份c转载 2017-08-13 14:05:53 · 490 阅读 · 0 评论 -
Android应用开发—RecyclerView+SwipeToLoadLayout
占位符原创 2017-08-12 23:08:02 · 411 阅读 · 0 评论 -
Android应用开发—TextView的动态创建
动态创建TextView的两种方式:下面介绍两种创建方式:在drawable里面创建共同依赖的background.xml文件,里面设置shape来设置文本框的一些特殊效果:eg:<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" >原创 2017-08-12 22:59:29 · 3626 阅读 · 0 评论 -
Android App图片轮播效果的组件化
简介一个通用的图片轮转效果的通用组件,方便开发者快速集成。背景笔者参考http://blog.csdn.net/allen315410/article/details/39294343 学习了图片轮播效果的实现。在浏览代码的过程中,总觉得图片轮播的效果和Android Activity的耦合过高,如果一个开发者要集成该功能,会将整个功能代码和自己的App代码搅在一起,提高代码的复杂度。同时图片和图片原创 2017-07-15 00:13:17 · 659 阅读 · 0 评论 -
Android应用开发—知识点汇总
获取Fragment的context: getActivity().getApplicationContext()或者getActivity() You can use getActivity(), which returns the activity associated with a fragment. The activity is a context (sinc...原创 2017-08-12 11:39:56 · 1581 阅读 · 1 评论 -
Android应用开发—PendingIntent:如何判断两个PendingIntent对等
摘录自:PendingIntent详解如何判断两个PendingIntent对等:两个PendingIntent对等是指它们的operation一样, 且其它们的Intent的action, data, categories, components和flags都一样。但是它们的Intent的Extra可以不一样。主要常量FLAG_CANCEL_CURRENT:如果当前系统中原创 2018-01-07 17:17:03 · 893 阅读 · 0 评论