![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 63
achilles偏要执著
这个作者很懒,什么都没留下…
展开
-
android的Support Library
总体上v4 support和v7 appcompat support用的最多v4(支持API level 4+,位于/extras/android/support/v4/路径下)包含以下常用的库: FragementViewPagerDrawerLayoutNotificationCompatLoader:增加对异步加载数据的支持,同时也提供对某些类的具体继承实现如:CursorLoade翻译 2015-12-15 20:57:52 · 328 阅读 · 0 评论 -
理解view
layoutInflaterlayoutInflater是用来加载布局的,其实setContentView()也是调用layoutInflater来加载布局的 1.LayoutInflater layoutInflater=LayoutInflater.from(context); 2.LayoutInflater layoutInflater=(LayoutInflate原创 2016-03-19 13:24:26 · 281 阅读 · 0 评论 -
浅析android中AsyncTask
作用 android是单线程模型。如果在UI主线程中执行耗时操作。可能导致ANR(应用无响应)。系统就会弹出一个ANR对话框。用户选择等待或者离开应用 注意:ANR出现场景: 主线程被IO操作(4.0以后主线程中不允许进行网络IO操作)阻塞。主线程中进行耗时的操作。主线程中进行错的操作,如Thread.wait Thread.sleep Android系统会监视应用响应情况:如果原创 2016-03-21 00:19:15 · 379 阅读 · 0 评论 -
异步消息处理线程
普通的线程执行完run()方法线程就会结束,异步消息处理线程是指,线程启动后会进入无限循环体中,每循环一次就会从消息队列中取出一条消息,并且回调消息处理函数。执行完一条消息后继续循环。如果消息队列为空线程就会暂停,直到消息队列中有新的消息一般实现每个异步线程内包含一个消息队列,先到的消息先被处理线程的执行体中使用while(true)循环,不断的从消息队列中取出消息,并根据消息来源,回调相应的原创 2016-03-28 11:13:03 · 505 阅读 · 0 评论 -
android中进程优先级问题
学习Android最好的途径当然是强大的官方文档了,其中在Processes and Threads一节中对于进程生命周期淘汰优先级,有着详细的介绍。就不给大家转帖了,直接放译文吧,如下: Android系统会尽量维持进程的存在,但毕竟资源有限,当系统资源告急的时候会淘汰一部分进程。淘汰顺序的凭据就是系统进程的优先级了,优先级越高越不容易被杀死,反之亦然。系统总共为进程分了五个优先级,如下 一、翻译 2016-05-01 15:51:52 · 318 阅读 · 0 评论 -
别人总结的android学习资源汇总
优秀的网站google官方培训文档codekk开源项目分析代码零件优秀的技术阅读网站掘金开发技术前线开发者头条android开发周报csdn的android知识库segmentfaultgithub上的资源codekk搜集的开源项目github上google账号github上google samplesandroid ui开源项目的搜集2015google io大会d原创 2016-05-05 20:10:30 · 334 阅读 · 0 评论 -
Services
services是一种可以长时间在后台运行并且不与用户交互的一种组件,其他的应用组件可以开启一个service,并且这个service会一直在后台运行即使用户切换到其他的应用。另外一个组件可以bind to service来和它交互甚至进行(IPC)进程间交互。例如:一个service在后台处理网络,播放音乐,执行I/O,或者和一个contentprovider进行交互。service有两种启动方翻译 2016-10-23 16:36:38 · 373 阅读 · 0 评论 -
开发中常用的adb命令
允许adb debugging需要在手机中进行设置(开发者选项中)使用无线连接设备 让手机和电脑连接同一个网络,先使用usb线连接手机,然后电脑终端设置手机在5555端口监听tcp(adb tcpip 5555),使用adb connect ip(手机ip)命令连接手机注意:如果连接丢失 可以尝试确保连接的是同一个无线重新使用adb connect ip命令重启adb server原创 2016-11-20 20:39:11 · 354 阅读 · 0 评论 -
app卡顿检测原理以及blockcanary源码分析
App检测卡顿的原理自定义Looper中的printer public static void loop() { final Looper me = myLooper(); if (me == null) { final MessageQueue queue = me.mQueue; for (;;) { ...原创 2018-03-19 22:57:54 · 565 阅读 · 0 评论 -
LocalBroadcastManager原理解析
最近看到阿里巴巴的android手册中提倡应用内用LocalBroadcastManager来发送本地广播。所以就分析一下其源码。单例模式public static LocalBroadcastManager getInstance(Context context) { synchronized (mLock) { if (mInstanc...原创 2018-03-19 23:08:58 · 378 阅读 · 0 评论 -
从启动的activity中获得结果
启动另一个activity总不是单程的。你可以启动另一个activity并且接收回一个结果。为了接收结果,调用startActivityForResult()(而不是startActivity())。 比如:你的app可以启动一个camera app并且接收获取的图片作为返回结果。或者你可以打开联系人的app并且选择一个联系人然后你可以接收到联系人详细信息作为返回结果。 当然,响应的act翻译 2015-12-21 23:28:20 · 394 阅读 · 0 评论 -
和其他app进行交互
一个android app可以有许多activities。每个activity给用户提供一个用户接口来操作具体的任务(比如查看地图或者拍照)。为了将用户从一个activity带到另一个activity,你的app必须使用intent来定义你的app的“意向”。当你给一个函数比如startActivity()传递一个Intent,系统就会使用Intent来确定并且启动合适的app组件。使用intent翻译 2015-12-21 20:47:03 · 447 阅读 · 0 评论 -
Activity生命周期之暂停和恢复Activity
前台运行的Activity有时候可能被其他组件给阻断,处于半透明的状态。比如说弹出的对话框,此时Acvitity进入paused状态 当你的Activity进入paused状态,系统会调用onPause()函数,这样你可以暂停正在进行的动作比如暂停视频播放或者在该函数里持久化用户的数据防止用户突然离开,导致的数据丢失。如果用户回到该Activity调用onResume()函数暂停Activi翻译 2015-12-16 13:47:45 · 553 阅读 · 0 评论 -
2015最新对activity生命周期的详解
starting an Activity在Activity实例中android 系统通过调用Activity对应生命周期的回调函数来启动代码程序。相当于某些编程语言的Main函数理解生命周期回调函数 这是google官方给出的生命周期的图。类似金字塔。系统创建Activity实例时,生命周期回调函数一步一步将Activity带到最顶端的Resumed状态。该状态的Activity处于前台展翻译 2015-12-16 11:24:38 · 555 阅读 · 0 评论 -
Activity生命周期之stop和restart Activity
以下是一些Activity 停止和重新启动的情况: 突然接到电话 当用户从一个A Activity启动另一个B Activity时候,A处于Stopped,当按返回键时,B被restart 用户打开最近应用窗口,从你的app切换到别的app的时候。Activity处于Stopped,等到再切换回来时,Activity被restart 注意:因为系统会将你的Activity缓存翻译 2015-12-16 20:36:37 · 4142 阅读 · 0 评论 -
Activity生命周期之重新创建Activity(recreating activity)
ReCreating an Activity 某些情况下你的Activity会因为正常的用户行为被销毁,比如用户触发返回键,activity会调用finish()函数来销毁自己。系统也可能会因为前台程序需要资源而把后台程序杀死来腾出内存空间。 当你的Activity是因为用户按返回键而调用finish()来销毁的,一般意味着用户不再需这个Activity。系统对这中Activity已经翻译 2015-12-16 21:52:22 · 437 阅读 · 0 评论 -
模块化Activity-Fragment
Creating A Fragment 你可以把Fragment看成是Activity一个模块化的部分,它有自己的生命周期,可以接受用户的输入,当Activity运行时也可添加或者删除Fragment。这部分课程,我们使用Support Library,继承Fragment。硬件最低要求是android 1.6create a Fragment Class 我们通过继承Fragment类来翻译 2015-12-17 14:20:39 · 378 阅读 · 0 评论 -
构建灵活的UI之Fragment(二)
FragmentManager类允许你的在运行期间向你的Activity中增加,移除和替换Fragment来提供一种动态体验在运行期间向你的Activity添加Fragment,相比于在布局文件中用 fragment标签来为你的Activity定义fragment。你可以在运行期间向Activity添加fragment翻译 2015-12-17 16:26:11 · 439 阅读 · 0 评论 -
Fragment之Fragments之间的通信(3)
一旦你定义这些可复用的Fragments,你可以将他们和一个Activity联系在一起,并且和应用的逻辑联系在一起来实现综合的UI。 你可能希望一个Fragment能够和其他的Fragment通信,例如根据用户的行为来改变内容。所有的Fragment之间的通信都是通过其相关联的Activity进行的。两个Fragment之间永远不会直接通信。 定义一个接口 为了能够让F翻译 2015-12-17 21:51:30 · 268 阅读 · 0 评论 -
android数据存储的选择
存储的选择android提供几种持久化应用数据的选择,选择何种方式依据你的具体需求,比如数据对你的应用来书是私有的还是可以让其他的应用程序(或者用户)得到以及你的数据需要多大的空间Shared Preferences 以键值对的形式存储私有的原始数据内存 将私有数据存储在设备的内存中外部存储 将共有数据存储在共享的外部存储sqlite数据库 将结构化的数据存储在私有的数据库中将数据翻译 2015-12-19 23:46:53 · 444 阅读 · 0 评论 -
pixel2真机调试aosp
文章目录pixel2真机调试aosp2.下载源码3.下载完成后编译aosp4.as导入aosp1.导入加速2.配置正确的源码跳转3.调试aosp4. 其他repo查看其他分支pixel2真机调试aosp##1. 前置工作解锁手机,让手机允许刷机adb reboot bootloader # 重开机后看到机器人fastboot flashing unlock #进入解锁画面,音量键选择...原创 2019-08-15 18:42:49 · 1361 阅读 · 0 评论