分类

Android

深入探讨 Android 系统的核心架构与高级开发,聚焦四大组件(Activity、Service、Broadcast Receiver、Content Provider)的原理、生命周期管理和交互机制。从基础的组件构建与通信,到 Android Framework 层(如 AMS、WMS、PMS)的源码剖析和自定义扩展,提供详尽代码示例、调试技巧和性能优化策略。涵盖 JNI、AIDL、Binde

共 356 篇文章

Android

Android屏幕:dip、dpi、density、px

Android屏幕:dip、dpi、density、px1、Px (Pixel像素)也称为图像元素,是作为图像构成的基本单元,单个像素的大小并不固定,跟随屏幕大小和像素数量的关系变化(屏幕越大,像素越低,单个像素越大,反之亦然)。所以在使用像素作为设计单位时,在不同的设备上可能会有缩放或拉伸的情况。在Activity、Service或者View中可以获取到屏幕像素Px,Android都提供了get

1.7k 1
Android百分比布局PercentLayout
Android

Android百分比布局PercentLayout

Android百分比布局PercentLayout百分比布局已经不怎么常用了,现在官方力推用ConstraintLayout构建自适应界面 ,解决屏幕适配的问题。但是PercentLayout有时候还是有用武之地的,尤其是在适配屏幕大小不一,使用比例放缩分配布局。比起LinearLayout使用权重适应屏幕来说,PercentLayout是个不错的选择。1、引入PercentLayout使用百分比

1.6k
Activity切换动画
Android

Activity切换动画

Activity切换动画Activity之间切换的时候有动画效果,不同手机系统效果不一样,因为系统框架做了改进。而APP开发者也可以自定义Activity切换动画,让自己的应用变得高大上。1、overridePendingTransition(有效)Activity类中提供了Activity跳转动画方法,通过该方法可以实现Activity跳转时的动画效果。在Activity中定义的部分源码如下 ①

2.4k
Android

Android build.prop系统属性信息

Android build.propAndroid的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product/<board>/system/目录下。在Android运行时刻可以通过property_get()[c/c++域] / SystemProperties_

3.1k
Android

strings.xml中的特殊字符:空格,换行等

strings.xml中的特殊字符:空格,换行Android推荐将字符串统一写到values/string.xml中进行保存。目的是方便统一管理,并且利于国际化。但是在这些字符串中直接输入一些符号是不起任何效果的,比如空格,换行,<,>等特殊符号,这就需要使用转义字符来进行转移,这样才能在使用时正确显示字符。在strings.xml字符文件起始加上:1、特殊字符空格 &#160;换行 \n缩进 \

1.8k
Android内存泄漏检测和避免
Android

Android内存泄漏检测和避免

Android内存泄漏检测和避免 Java具有内存自动回收,但是在Android往往经常存在内存泄漏。因为Android开发中存在大量的异步任务等不了垃圾回收,还有很多JNI底层的的内存分配。1、内存泄漏检测好在Android提供了很多内存泄漏检测工具,帮助我们发现内存泄漏。还有大牛开发的库,比如:LeakCanary1.1、Android ProfileMemory Profiler 是 And

1.8k
Android主题Theme style
Android

Android主题Theme style

Android主题Theme探究Android预先定义了很多主题,我们也可以在values/styles.xml文件中自定义主题。1、三个颜色新建一个工程AndroidStudio会在styles.xml中帮我们定义一个默认AppTheme,其中有三个颜色值colorPrimary、colorPrimaryDark、colorAccent,含义如下:2、常用属性: 状态栏、顶部导航栏相关: Win

1.8k 1
ProgressBar及其样式使用详解
Android

ProgressBar及其样式使用详解

ProgressBar1、基本使用和普通控件一样,在布局中添加ProgressBar,布局中设置一些属性还可以在代码中设置一些属性:2、二级进度:secondaryProgress一般缓存,下载进度显示都会用到二级进度条,使用android:secondaryProgress设置。场景:音乐缓存的进度就可以是android:secondaryProgress,而音乐播放进度就是android:pr

4.2k
布局优化 &amp; 过度绘制检测
Android

布局优化 &amp; 过度绘制检测

布局优化 & 过度绘制检测1、选择合适布局一开始就选择一个合适的根布局,是明智的选择。合理的构思有利于减少布局层级。推荐如下优先选择:FrameLayout > LinearLayout > RelativeLayout·减少布局层级,层级越深,测量绘制越复杂耗时。布局应当宽而浅,而不是窄而深。·能用一层RelativeLayout布局最好·不要嵌套使用RelativeLayout布局,因为Rel

1.8k
adb Wifi调试
Android

adb Wifi调试

adb Wifi调试手机连着USB线调试拖着一根线不方便,adb可以无线调试,通过无线网连接手机调试。发现一个有趣的,用WiFi将手机和一台电脑连接调试,此时再用USB将手机连接到另一台电脑上,两台电脑可以同时通过USB/WiFi调试同一部手机。1、配置手机IP首先用USB连接电脑,开启重新开启手机端的adb tcpip 端口(要不然你也不知道),指定一个端口号port如果知道手机的ip地址就跳过

1.8k
Android DeepLink跳转
Android

Android DeepLink跳转

Android DeepLink跳转网页通过超链接跳转到APP指定页面,或者通过DeepLink打开特定的应用页面,都是通过Android DeepLink技术实现的。搜索跳转例子1、<data />要想让自己的应用能够通过DeepLink跳转,需要先了解AndroidManifest中的<data />标签。关于<data />及更多AndroidManifest标签详见Android Deve

2.9k
onConfigurationChanged()及屏幕横竖屏锁定
Android

onConfigurationChanged()及屏幕横竖屏锁定

onConfigurationChanged()每当配置发生变化的时候,比如横竖屏切换(可以设置屏幕方向,参考《屏幕方向属性:android:screenOrientation》)。Activity的生命周期都会重新创建,比如很竖屏的切换,Log如下:每当很竖屏切换的时候都会执行onCreate()重新创建Activity,之前的Activity销毁。能不能不销毁呢,万一用户在输入数据(虽然可以通

1.8k
Activity页面全屏探究
Android

Activity页面全屏探究

Activity页面全屏探究一些场景下需要应用全屏1、Window设置Flag在Activity的onCreate()方法中设置Flag:WindowManager.LayoutParams.FLAG_FULLSCREEN。了解更多Window Flag相关知识的详见《理解WindowManager》。2、在AndroidManifest中设置theme属性首先在values/styles.xml

1.8k 1
Android NDK开发简单入门
Android

Android NDK开发简单入门

JNI开发 看了看时间,整整折腾一天才跑成功一个demo。内心又几乎奔溃,Android这个NDK能不能别乱动,哪怕是就隔不到1年都不兼容了。Android最操蛋的也就是这个了,API不稳定。尽管官方已经极力的在维护,早干嘛去了。Android一个重要的开发方向JNI开发,使用JNI接口可以完成Java代码对C/C++代码的调用,一般C/C++用来实现比较复杂的算法处理,比如图像、音视频的处理。这

1.7k
WebView简单入门
Android

WebView简单入门

WebView简单入门WebView是非常复杂的控件之一,用的不多,简单记录一些基本用法。1、布局中添加WebView直接在布局中添加WebView控件2、WebView加载网页使用loadUrl方法。①可以加载网页链接。②加载assets/目录下的html页面,需要加上前缀file:///android_asset/。关于assets资源另见 assets资源 一文。设置完url,还不能加载页面

1.7k