随笔分类 - Android
摘要:线程池的优点 线程池中的线程可以重用,减少线程创建、销毁带来的系统开销; 控制线程池的最大并发量,避免相互抢占系统资源而导致阻塞; 对线程进行简单管理,提供定时执行,以及指定间隔循环执行; ThreadPoolExecutor构造方法 public ThreadPoolExecutor(int co
阅读全文
摘要:AsyncTask工作原理 从AsyncTask的execute方法入手: @MainThread public final AsyncTask<Params, Progress, Result> execute(Params... params) { return executeOnExecuto
阅读全文
摘要:简介 AsyncTask是Android系统提供的异步方式,其优点在于在子线程执行任务,并将结果传递给主线程。 实现方式 AsyncTask封装了Executor和Handler。 基本使用 通过AsyncTask提供的4个方法,做业务处理 onPreExecute() doInBackground
阅读全文
摘要:Bugly热更新是基于微信的Tinker实现的。集成其热更新功能后可以一键生成patch包,然后上传到bugly平台。 基本步骤 详细说明 编辑根目录下的gradle文件 在buildscript.dependencies下增加: classpath ('com.tencent.tinker:tin
阅读全文
摘要:Data Binding 根据变量,自动赋值到各widget。 How 1.编写layout文件,这里的layout为: act_data_bind_demo.xml 这里需要先准备变量 在具体的widget上使用该变量 <TextView android:layoutwidth="matchpar
阅读全文
摘要:由于业务需要,需要在使用Activity的顶部使用一个导航栏,点击导航栏的tab,下面显示内容。决定采用项目中已经使用过的FragmentTabHost + Fragment的方式实现。不同的是之前的FragmentTabHost位于底部(下面统称:Bottom),现在需要放置在顶部(下面统称:To
阅读全文
摘要:View绘制过程 过程详解 onMeasure() 计算尺寸 onLayout() 为viewGroup类型布局子视图用的。 onDraw() 执行绘制图形动作。 View事件传递 Touch事件封装在MotionEvent对象中,其中包括touch的位置、时间、历史记录以及第几个手指触摸(多点触摸
阅读全文
摘要:Android应用程序在启动每个线程时,都会创建一个消息队列。线程的生命周期分为创建消息队列和进入消息循环两个阶段。 消息循环分为:发送消息和处理消息。 Android系统主要通过MessageQueue、Looper和Handler三个类来实现Android应用程序的消息处理机制。 Message
阅读全文
摘要:根Activity启动过程 Launcher启动MainActivity的过程主要分为6个步骤: 一、Launcher向ActivityManagerService发送一个启动MainActivity的进程间通信请求; 二、ActivityManagerService首先将MainActivity的
阅读全文
摘要:AsyncTask<Params, Progress, Result>中三个参数为: Params 输入数据 Progress 过程数据 Result 结果数据 工作队列 LinkedlockingQueue 的特性 线程从空的LinkedlockingQueue中取任务执行,线程会被阻塞; 线程向
阅读全文
摘要:进程内启动Activity 新进程中启动Activity
阅读全文
摘要:Android的Logger日志系统是基于内核中的Logger日志驱动程序实现的。 日志保存在内核空间中 缓冲区保存日志 分类方法:日志的类型 + 日志的输出量 日志类型: main sysytem radio events 以上四种日志分别通过以下四个设备文件来访问: /dev/log/main
阅读全文
摘要:基本概念 事务(Transaction)是指一个或多个更改数据库的扩展。例如,如果您正在创建一个记录或者更新一个记录或者从表中删除一个记录,那么您正在该表上执行事务。重要的是要控制事务以确保数据的完整性和处理数据库错误。实际上,可以把许多的 SQLite查询联合成一组,把所有这些放在一起作为事务的一
阅读全文
摘要:Android Studio中实现NDK开发较之前Eclipse+Cygwin,方便了很多。 本文以最简单的从C程序中获取字符串,并显示到MainActivity的TextView上为例进行NDK开发的基本流程。 准备 NDK开发环境 在安装好的Android Studio上,在SDK Manage
阅读全文
摘要:情景: ListView中,如果业务需要在点击position为1的item是,将position=1的itemView背景设置为Green;其他的设置为white 如何实现? 实现方案: 通过onItemOnClickListener()及getView() 首先设置一个currentPostio
阅读全文
摘要:基本情景如下: 在DialogFragment中单击一个按钮跳转到another Activity做一些逻辑处理,然后将返回的结果回显到该DialogFragment上。 处理逻辑是: 在DialogFragment的Activity的onActivityResult方法中再次调用showDialo
阅读全文
摘要:FragmentPagerAdapter中会在滑动到2页时,会预加载第三个页面。如果在这些页面中都有网络请求,那么当你还没有看到第三页时,第三页的数据请求已经发出。这样就会造成,当已进入该页面,可能会同时发出2个网络请求,这也就是增加了服务器的压力。有可能在这个页面用户不会立即滑动到下一页,因此最好
阅读全文
摘要:“再按一次退出应用”在APP开发中时常用到,其基本实现方式为: 1. 重写onKeyDown事件函数。 @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((System.currentTimeMillis() - mE...
阅读全文
摘要:简介 当应用程序发布上线后,用户在使用的过程中可能会出现异常情况。对于这样的状况,如果能及时获取用户的异常信息,便能及早的分析和解决问题。 需要收集的信息 1. bug日志; 2.应用程序的版本号 3.设备信息(如果可以) 4.截图(如果可以) 上传服务器过程 1.收集相关信息; 2.检测网络链接;
阅读全文
摘要:Java字符串中需要对一些字符进行替换,用到最多的是replace和replaceAll两个方法。这两个方法在使用的时候需要注意:replace:public String replace (CharSequence target, CharSequence replacement)Added in...
阅读全文

浙公网安备 33010602011771号