android
文章平均质量分 65
seedInWind
这个作者很懒,什么都没留下…
展开
-
mac 下交叉编译android平台ffmpeg
FFmpeg的Android平台移植—编译篇ffmpeg ./configure参数说明解决ffmpeg 交叉编译报错 ./configure: line 953: /bin/arm-linux-androideabi-clang: No such file or directory C原创 2019-10-25 22:08:25 · 287 阅读 · 0 评论 -
源码阅读----资源管理
arsc文件结构参考两篇博文:第二篇较为详细 手把手教你解析Resources.arsc Android6.0之App中的资源Rsources.arsc详解 总结一下: arsc二进制文件的存储是基于块(chunk)的,每个块包含有数据头和数据两部分,块与块之间可以嵌套包含; 数据头指明了chunk的类型,头部大小,整个块的大小等等,同时也就界定了数据区。 一个arsc文件原创 2017-11-03 16:50:09 · 387 阅读 · 0 评论 -
WindowInsets与fitSystemWindow相关知识总结
fitSystemWindow作用 这一块的知识从名称上看出是跟系统窗口相关的,主要是状态栏和底部虚拟导航栏有关系,在4.4版本开始,Android推出了沉浸式状态栏,状态栏和导航栏变得半透明,使得用户可以对导航栏和状态栏部分进行绘制,但是在设置沉浸式模式之后,我们的用户界面部分扩展到了整个屏幕,可能会导致系统窗口遮挡用户控件的情况,fitSystemWindow就是为了解决这种问题。默认的实现原创 2017-10-27 11:55:20 · 2201 阅读 · 0 评论 -
源码阅读--应用上下文环境Context
Context上下文环境包括哪些Context继承结构 android应用是基于组件的,四大基本应用组件构成了基本的应用。开放给开发者的应用组件,打个比方就像一栋建筑的每个房间,我们像搭积木一样把每个房间合理摆放组成一栋建筑,但是现实中建筑并不是房间的简单堆砌,还要有地基,还要有钢筋结构的连接,有水电管线,有物业管理等配套的服务设施。同样的应用组件也要有运行的配套环境,这些环境在Context中原创 2017-09-30 09:57:43 · 247 阅读 · 0 评论 -
组件--游标尺 数值选择器
最近看到很多金融应用用一种数值选择器,一把尺子的设计,刻度可以左右滑动改变,如下图: 不多说,上代码public class Ruler extends View { private static final int RULER_LINE_MAX = 50; private static final int RULER_LINE_MID = 30; private stati原创 2017-09-30 16:42:54 · 834 阅读 · 0 评论 -
源码阅读---Activity生命周期控制
在Activity的启动流程中,在AMS创建ActivityRecord并把ActivityRecord添加到Activity栈中(ActivityStack的startActivityLocked方法)之后,就完成了ActivityRecord与TaskRecord的关联,接下来就开始Activity生命周期的处理,包括触发启动过程的当前Activity的pause过程,以及被启动Activity原创 2017-09-29 16:25:17 · 321 阅读 · 0 评论 -
源码阅读---Activity启动中应用进程的创建
问题1 追踪Activity启动流程的过程中,在StartSpecificActivityLocked方法中如果应用进程没有启动的话会去先启动进程。对于同一个应用中的Activity跳转,不特殊指定(使用android:process属性)的话是不会走这一流程,但在Launcher启动应用时会创建进的进程。另一种情况:一个应用APP1启动另一个应用APP2中的Activity,不指定NEW原创 2017-09-27 18:09:29 · 273 阅读 · 0 评论 -
源码阅读--窗口View系统
结构应用端 应用端主要负责输入事件的分发处理,view的绘制等,activity在这里扮演的是一个比较弱的角色,一个顶层的分发者,Activity、Dialog等Window承载者实现了Window.Callback接口,定义了一系列dispatchXXXEvent方法。 Activity持有mWindow和mWindowManager两个成员,mWindow是PhoneWindow类对象原创 2017-09-08 15:19:18 · 386 阅读 · 0 评论 -
源码阅读---AMS与Activity启动流程
AMS中Activity管理相关数据结构 AMS管理着所有应用的Activity记录,在AMS中以栈的形式管理Activity,以stack和task为基本单位,安卓系统支持多屏幕设备(手机屏,投影仪)展示,手机默认展示屏幕是手机屏幕,一个显示设备对应AMS中的一个ActivityDisplay,ActivityDisplay保存有该显示设备上的多个ActivityStack,一般会有两个...原创 2017-09-23 17:32:58 · 338 阅读 · 0 评论 -
gradle插件编写
插件类别二进制插件 可以以二进制形式发布和使用,如apply plugin:’com.android.library’脚本插件 以.gradle脚本形式引用,模块化脚本,如apply from :”script path” 可参考ReactNative 打包脚本;可以直接在脚本中使用groovy编写插件插件编写1.在脚本中直接编写 在gradle脚本中可以直接使用groovy编写插原创 2017-09-05 17:40:56 · 399 阅读 · 0 评论 -
仿微信支付密码输入框
两种不同实现,使用系统键盘和使用自定义键盘1.简单功能,可结合自定义键盘使用,未处理系统键盘输入 布局<?xml version="1.0" encoding="utf-8"?><merge xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"原创 2017-07-18 18:27:30 · 1141 阅读 · 0 评论 -
Kotlin实现propertyAnimator
项目要用到一个动画效果,正好最近在看kotlin相关的东西,用kotlin做了个Demoimport android.animation.ObjectAnimatorimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport kotlinx.android.synthetic.main.activi原创 2017-07-07 11:24:37 · 632 阅读 · 0 评论 -
源码阅读--进程管理
应用进程的创建 在Activity启动中应用进程的创建中从应用Activity启动的总体过程分析了Activity所在进程的创建以及应用与AMS绑定过程。 在要启动的应用组件所属的进程没有创建时,会先创建对应进程,先在AMS的mProcessNames中查找ProcessRecord记录,没有的话会创建新的ProcessRecord,并添加到mProcessNames,然后调用Proces原创 2017-11-28 20:37:10 · 348 阅读 · 0 评论 -
源码阅读--package管理与应用安装
已安装应用目录结构在PMS启动初始化时,会扫描一下目录,并安装对应的应用。每个目录下是已安装的应用,每个应用的对应目录包括apk文件,lib库so文件,以及oat文件 /system/app /data/app /data/app-asec /data/app-privatepackages.xml文件 在/data/system目录下,packages.xml保存了系统安装的应用相原创 2017-11-21 17:11:02 · 413 阅读 · 0 评论 -
源码阅读--BroadcastReceiver广播机制
注册Receiver BroadcastReceiver有两种:动态Receiver和静态Receiver(8.0开始已经禁止对隐式广播注册静态Receiver了,隐式广播是指非该app独有的广播),划分依据是注册时机的不同; 在Manifest文件中注册的Receiver是静态Receiver,在安装应用的时候解析安装包,会把相应的解析信息保存在PackageManagerService原创 2017-12-14 17:24:05 · 373 阅读 · 0 评论 -
卡顿优化
工具:cpu profile(call chart,Flame chart,bottomUp)cpu呈现模式GPU过度绘制layoutInspectorBlockCanary量化指标广研Android卡顿监控系统优化内容RecycleView嵌套优化 GridLayoutManager SpanCountOnBindViewHolder处理导致的卡顿ConstraintL...原创 2019-03-27 14:31:52 · 208 阅读 · 0 评论 -
flutter学习资料
1。cookbook原创 2019-04-04 15:41:00 · 247 阅读 · 0 评论 -
Dart学习资料
1.async Future 与多线程理解转载 2019-03-29 18:21:37 · 198 阅读 · 0 评论 -
linux安装charles
http://einverne.github.io/post/2017/11/charles-installation-under-linux.html转载 2019-03-20 15:33:01 · 1249 阅读 · 0 评论 -
View rotate 锯齿问题
Smoothen jagged edges of rotated image viewhttps://medium.com/@elye.project/smoothen-jagged-edges-of-rotated-image-view-1e56f6d8b5e9转载 2019-02-20 16:27:56 · 778 阅读 · 0 评论 -
android anr分析
android anr分析转载 2018-11-20 10:58:20 · 144 阅读 · 0 评论 -
WebView onReceivedError变更兼容
http://www.barryzhang.com/archives/450转载 2018-07-06 16:29:05 · 2690 阅读 · 0 评论 -
属性动画ValueAnimator------自定义进度条
在https://material.uplabs.com/posts/loader-success看到一个加载成功的动效,用ValueAnimator做个DemoView原创 2018-07-17 12:21:18 · 786 阅读 · 1 评论 -
在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错
转自:https://blog.csdn.net/qq_16628781/article/details/51547085 缺少权限 权限写错 UI线程中网络操作 端口占用导致 android版本问题 开发工具问题?重启,重编译我遇到的问题原因:权限写错 permission与uses-permission的区别: 是声明要使用的权限,是自己定义权限,一般使用的是 基础不牢啊...转载 2018-07-03 18:06:49 · 565 阅读 · 0 评论 -
user in plugdev group; are your udev rules wrong
切换usb链接模式https://askubuntu.com/questions/680591/android-adb-no-permission转载 2018-07-16 15:14:30 · 2837 阅读 · 0 评论 -
Android7.1.1 Toast BadTokenException
参考https://github.com/drakeet/ToastCompat/blob/master/library/src/main/java/me/drakeet/support/toast/SafeToastContext.java转载 2018-07-16 15:02:28 · 454 阅读 · 0 评论 -
安卓系统源码阅读--目录
1.通信机制 Handler消息机制–线程间通信 Binder机制–进程间通信3.基本应用组件与AMS 准备:Android进程管理、Intent机制、应用沙箱机制uid,UserId,appId Intent机制:Intent、IntentFilter、IntentResolver 进程管理:ProcessRecord、进程优先级 基本组件:Activity、Ser原创 2017-06-03 23:05:07 · 345 阅读 · 0 评论 -
android发布前检查配置脚本
#check release config before publishimport sysimport redef checkEachFile(config): list=config.split(';') try: file=open(list[0]) print('file------File :'+file.name) co原创 2017-06-26 18:17:16 · 270 阅读 · 0 评论 -
android系统源码阅读--进程间通信Binder机制
进程间通信Binder机制Linux内存管理 段式分布一个进程对应一个程序的一次运行状态,程序运行的代码数据,需要用到的资源数据(如图片,音视频等)以及用户输入数据等都需要占用内存空间,根据不同的数据用途,程序把数据存储到不同的分段,每个程序都会对应5种数据分段:代码段、数据段、BSS段、堆、栈:1)代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存原创 2017-07-04 16:41:18 · 400 阅读 · 0 评论 -
ViewDragHelper
http://www.cnblogs.com/lqstayreal/p/4500219.html转载 2016-08-09 17:38:56 · 223 阅读 · 0 评论 -
Fragment源码阅读笔记
转自:http://blog.csdn.net/ashqal/article/details/495601830 认知Fragment官方的翻译名为:片段,表示 Activity 中的行为或用户界面部分。相比Activity 相比Activity,Fragment的创建、销毁只需要依附到宿主Activity中,不需要与ActivityManagerService跨进转载 2016-08-08 23:17:23 · 330 阅读 · 0 评论 -
Fragment相关源码阅读笔记(3)FragmentManagerImpl
FragmentManagerImpl类是FragmentManager抽象类的具体实现,负责Fragment 的管理,主要有三方面的功能: 1/Fragment管理,添加移除等(add/remove/replace/hide/show) 2/事务管理,对Transactions的操作,addToBackStack和popBackStack原创 2016-08-08 22:15:05 · 1598 阅读 · 0 评论 -
属性动画学习ValueAnimator---------源码阅读
看了android官方文档知道ValueAnimator可以实现任意值随时间的变化,首先想到的实现方式是timer或Handler;看了一下源码才发现是通过底层的VSync信号触发的周期回调来实现的,上面这个图简单的展示了ValueAnimator实现原理: 1.ValueAnimator调用start 方法把自身注册到AnimationHandler的mPendingAnimation数组 2原创 2016-08-29 23:59:10 · 555 阅读 · 0 评论 -
Fragment相关源码阅读笔记(2)FragmentTransaction
Fragment的管理中使用了事务的概念,类似于数据库中的事务,可以把对Fragment操作打包成事务提交,(API for performing a set of Fragment operations),通过FragmentTransaction的addToBackStack和FragmentManager的popBackStack可以进行事务入栈和回滚操作1.FragmentTran原创 2016-08-04 00:46:23 · 386 阅读 · 0 评论 -
Fragment相关源码阅读笔记(1)
以前也用过Fragment,大多数是结合ViewPager,使用support-v4里的类,但是对Fragment的只是停留在简单的使用,对具体的生命周期调用和Fragment的实现原理都不太清楚,最近看了一下Fragment相关的源码,在这里整理一下,加深理解,也防着以后又给忘了总结:Fragment实现了对View进行异步动态添加移除管理,在这一点上相当于我们自己封装View进行相关业务处原创 2016-07-28 00:01:39 · 306 阅读 · 0 评论 -
gradle生成aar文件及使用本地aar文件
1 。生成aar文件 在AS下使用gradle生成aar文件比较简单,创建项目或者在已有项目下新建module,选择Android Library,正常build在build目录下会生成aar文件2 . 本地使用aar文件 一般公司项目中使用aar文件,是 将aar存储在Maven仓库,通过gradle 配置文件的 dependencies{原创 2016-06-20 20:58:48 · 3960 阅读 · 0 评论 -
DialogFragment实践与原理
最近一直在看Fragment相关的内容,恰好今天项目利用到了DialogFragment,DialogFragment从3.0系统开始支持,更低版本可以使用support library。使用DialogFragment主要重写onCreateDialog方法或者重写Fragment的onCreate View方法问题:展示的DialogFragment有一段空白标题,setStyle有n原创 2016-07-14 23:07:42 · 1096 阅读 · 0 评论 -
使用maven插件打包aar文件
问题一:项目中要把第三方支付sdk版本升级,并把sdk独立出一个单独的aar文件,开始直接打了一个aar包,主工程里仍然保留着对sdk 的jar包依赖,明显这样不太合理,不符合aar独立的目的,但是把依赖去掉以后,运行时会报会无法找到sdk jar包中的类。问题二:解压aar包看到aar中没有sdk,jar 包 文件,像在android项目结构中一样在library项目里加入libs,放入ja原创 2016-07-11 20:19:50 · 2707 阅读 · 0 评论 -
maven构建pom.xml文件理解
1/pom文件官网解读http://maven.apache.org/pom.html基本结构: 一. 根节点 project,命名空间,由于xml标签属性可自定义为防止冲突增加命名空间,类似于java类的全限定名起到唯一标识作用,在android资源文件layout中 使用自定义属性时有用到命名空间,以及android:tools命名空间;xsi原创 2016-06-21 21:37:47 · 618 阅读 · 0 评论 -
ViewPager复用Item
平时使用ViewPager都是直接初始化一个View数组或Fragment数组传递给对应的PagerAdapter,也许是用AdapterView系列的ListView这些习惯了,相当然的就以为ViewPager也是实现了View的复用,实际上ViewPager本身保有的page数量是有限的,可以通过setOffScreenLimit方法来设置。今天实现一个效果时,跟ios同事讨论view的复用时仔原创 2016-08-23 23:11:26 · 2143 阅读 · 0 评论