自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android 开发

https://github.com/yueqc1

  • 博客(51)
  • 收藏
  • 关注

原创 综合站点汇总

国内个人博客汇总国内团队博客汇总综合站点汇总Android 开发与进阶阅读书籍

2024-10-25 16:31:40 300

原创 国内团队博客汇总

国内个人博客汇总国内团队博客汇总综合站点汇总Android 开发与进阶阅读书籍网易云音乐的Android之旅 - 知乎京东前端团队凹凸实验室蘑菇街技术博客奇迹空间科技有限公司百度技术沙龙百度web前端团队FEX饿了么物流悦跑圈技术团队阿里中间件团队博客阿里技术沙龙天猫无线团队淘宝前端团队FED美团点评技术团队奇虎360技术博客alloyteam腾讯全端腾讯Bugly腾讯wetestIBM developerWorks 中国Glow 技术团队博客coding的技术博客有赞技术团队微信读书今日头条技术博客Qun

2018-01-05 09:07:19 1322

原创 国内个人博客汇总

国内个人博客汇总国内团队博客汇总综合站点汇总Android 开发与进阶阅读书籍stormzhang,Trinea,张明云,胡凯,技术小黑屋,高建武,廖祜秋,郭霖,任玉刚,张鸿洋,徐宜生,江清清,汤涛,扔物线,何红辉,脉脉不得语,代码家,hi大头鬼hi,包建强,顾浩鑫,Gityuan,罗升阳,邓凡平,魏祝林,农民伯伯,非著名程序员张涛,吴小龙,piasy,wangkuiwu ,小创作,Keegan小钢,田维术,中二病也要开发 ANDROID,宅男潇涧,晓晨DEV的技术博客,drakeet,markzhai ,

2017-07-13 15:37:31 3948

原创 Android 开发与进阶阅读书籍

国内个人博客汇总国内团队博客汇总综合站点汇总Android 开发与进阶阅读书籍

2017-06-13 11:34:59 1993 1

原创 虚拟机(二):Android 篇

ART 有多个不同的 GC 方案,这些方案包括运行不同垃圾回收器。在heap.cc的CollectGarbageInternal方法中,会根据当前的GC类型和原因,选择合适的垃圾回收器,然后执行垃圾回收。CMS(Concurrent Mark Sweep,并发标记清除)方案,主要使用粘性(sticky)CMS 和部分(partial)CMS。Partial 仅仅对应用程序的堆进行垃圾回收,但是不处理Zygote的堆。基于“分代”的垃圾回收思想。Full 会对应用程序和Zygote的堆都会进行垃圾回收。

2025-03-26 16:49:08 1351

原创 虚拟机(一):Java 篇

程序运行所需的存储对象会分布在这些分区中,每次只对其中一个分区进行回收操作,从而避免程序全部运行线程暂停来进行回收,允许部分线程在不影响回收行为而保持运行,并且降低回收时间,增加程序的响应速度。该算法首先从根集合进行扫描,对存活的对象标记,标记完毕后,再扫描整个空间中未被标记的对象并进行回收。整个过程需要暂停整个程序的全部运行线程,让回收线程以单线程进行工作,过程结束再恢复运行线程。标记-整理算法:标记过程仍然与“标记-清除”算法一样,但不是直接对可回收对象进行清理。但对象的移动是需要时间成本的。

2025-03-26 16:44:41 897

原创 屏幕刷新机制(二):Choreographer、SurfaceFlinger

作用:流程:重要方法:

2025-03-23 12:43:19 963

原创 屏幕刷新机制(一):机制

Android 屏幕刷新机制

2025-03-23 12:36:49 561

原创 实用性能优化(二):图片

使用Vertor Drawable替代传统的PNG/JPEG图片,能够极大的减少图片资源的大小。传统模式下,针对不同dpi的手机都需要提供一套PNG/JPEG的图片,而如果使用Vector Drawable的话,只需要一个XML文件即可。- PNG能够提供更加清晰无损的图片,但是PNG格式的图片会更大,占用更多的磁盘空间。建议优先提供xhdpi的图片,对于mdpi,ldpi与xxxhdpi根据需要提供有差异的部分即可。- 很多简单图片都能用代码实现,比如圆,矩形等,可以让开发用代码实现,减少包的大小。

2025-03-09 11:43:08 630

原创 实用性能优化(一):布局

使用自定义 View 替代复杂的 View 叠加通过canvas.clipRect()来帮助系统识别那些可见的区域。这个方法可以指定一块矩形区域,只有在这个区域内才会被绘制,其他的区域会被忽视。对于不在屏幕上的元素,可以使用Canvas.quickReject把他们给剔除,避免浪费CPU资源。使用透明度时,通过setLayerType的方法来指定View应该如何进行渲染,从SDK 16开始,我们还可以使用ViewPropertyAnimator.alpha().withLayer()来指定。

2025-03-09 11:38:15 385

原创 RxJava2 学习笔记

RxJava

2025-03-07 11:08:19 1238 1

原创 Android 屏幕适配 Tips

9 图片只能拉伸不能压缩,压缩会导致图片变形,因此在作图过程中要确定一下图片的最小尺寸,(比如,给出一个确定高度的矩形区域,里面放置一个初始高度大于矩形的 .9 图片,会导致图片压缩)。标注图片时,如果一个 icon 占满整个宽度,则可以不用标注icon宽度尺寸,只需要标注距离边框的尺寸,开发会采用自适应,如果确定宽度,在有的屏幕上只能占据一半宽度,如果包的大小太大时,尽量保证更高尺寸的图片存在,这样低屏幕密度的手机也能展现很清晰的图片,但是如果只有小图,就会放大拉伸,会导致图片变形或者不清晰。

2025-03-07 09:59:36 512 1

原创 反编译 APK

只是需要 app 中的图片资源,可以直接修改 xxx.apk的后缀为 xxx.zip,解压即可。apktool:执行 apktool d xxx.apk 命令。

2025-02-17 14:26:14 227

原创 稳定性(二):ANR

ANR全称Application Not Responding,意思就是程序未响应。如果一个应用无法响应用户的输入,系统就会弹出一个ANR对话框,用户可以自行选择继续等待亦或者是停止当前程序。Android系统会监控程序的响应状况,一旦出现下面情况,则弹出ANR对话框input事件5秒之内再次有事件才会ANR,如果没有不会弹窗主线程中存在耗时的计算主线程被IO操作(从4.0之后网络IO不允许在主线程中)阻塞。主线程中错误的操作,比如Thread.wait或者Thread.sleep等。

2024-11-15 18:17:58 1024

原创 稳定性(一):Native Crash 信号速查

重点信号SIGSEGV(11)signal segmentation violation:段错误无效内存访问访问无权访问的内存空指针、越界访问(mmap?)SIGBUS(7)Bus Error:总线错误非法内存访问访问 CPU 无法物理寻址的内存通常是由于 CPU 的对齐问题引起的(例如,尝试从不是 4 的倍数的地址读取长整型数据)SIGABRT(6):abort(3)发出的信号;资源初始化异常(配置文件、对象)SIGPIPE(13):管道破损,没有读端的管道写数据S

2024-10-31 20:16:38 389

原创 View系统机制(二):绘制流程

刷新机制:由ViewRoot对象的performTraversals()方法调用draw()方法发起绘制该View树,值得注意的是每次发起绘图时,并不会重新绘制每个View树的视图,而只会重新绘制那些“需要重绘”的视图,View类内部变量包含了一个标志位DRAWN,当该视图需要重绘时,就会为该View添加该标志位。measure:确定View的宽高为整个View树计算实际的大小,即设置实际的高(对应属性:mMeasuredHeight)和宽(对应属性: mMeasureWidth)

2024-10-30 17:46:39 582

原创 View系统机制(一):触摸机制(事件分发)

主要由三个重要的方法共同完成的,只有ViewGroup有拦截方法。View事件方法执行顺序:onTouchListener > onTouchEvent > onLongClickListener > onClickListener。传递过程遵循如下顺序:Activity->Window->PhoneWindow->DecorView->RootView->ViewGroup->View。

2024-10-30 17:42:28 1024

原创 可以尝试的知识付费渠道

课程国内慕课网腾讯课堂网易云课堂中国大学MOOC网易公开课国外edXCourseraUdacity知识付费知乎 live小报童知识星球小专栏GitChat极客时间拉钩教育小鹅通千聊得到电子书Kindle电子书微信读书攀登读书会得到当当豆瓣

2024-05-02 15:23:59 114

原创 了解行业信息的网站

讨论脉脉看准网GlassdoorBlind一亩三分地社区薪资状况OfferCome100offer职级对标levels.fyi融资创投平台IT桔子烯牛数据瞪羚云风潮|Current.VC胡润百富榜单系列福布斯榜单查公司国家企业信息公示系统天眼查企查查查人中国裁判文书网中国执行信息公开网中国人民银行征信中心

2024-05-02 15:21:22 72

原创 Android 开发细分方向

应用开发自定义控件性能优化游戏开发日常开发引擎开发系统开发定制鸿蒙安全逆向基础框架:缓存 网络 数据库 日志动态化H5 容器React NativeFlutter组件化热修复 插件化音视频图形图像直播 会议嵌入式开发物联网车机AI大模型机器学习区块链AR & VR

2024-04-08 15:14:12 261 4

原创 RecyclerView 与 ListView(二):缓存

ListView和RecyclerView最大的区别在于数据源改变时的缓存的处理逻辑,ListView是"一锅端",将所有的mActiveViews都移入了二级缓存mScrapViews,而RecyclerView则是更加灵活地对每个View修改标志位,区分是否重新bindView。在Recycler中实际上缓存VieHolder的有2类集合,一类是可见的ViewHolder数组,一类是不可见的ViewHolder数组,其中可见的数组中又分为数据改变跟没有改变的。RecyclerView获取缓存的流程。

2024-04-05 16:42:43 1007

原创 RecyclerView 与 ListView(一):使用

通过ListView的getChildAt()来获得需要更新的View,然后通过getTag()获得ViewHolder,从而实现更新。RecyclerView.ItemDecoration 给每一项Item视图添加子View,例如可以进行画分隔线之类。RecyclerView.LayoutManager 负责Item视图的布局的显示管理。RecyclerView.ViewHolder 承载Item视图的子布局。RecyclerView.Adapter 为每一项Item创建视图。Recycler缓存机制。

2024-04-05 16:35:48 413

原创 开发环境搭建(二):IDE 配置

安装Genymotion与Genymotion插件之后,并与之关联。如需安装SVN,在安装SVN时需要勾选安装命令工具。修改注释位置,禁用“语句堆一行”修改文件编码为UTF-8。禁止自动打开上次的工程。

2020-04-13 20:44:40 424

原创 Android 子线程更新UI方法总结

【代码】android 子线程更新UI方法总结。

2019-03-06 20:39:40 455 1

原创 realm-js chrome debug 报错解决方案

failed to execute ‘send’ on ‘xmlhttprequest’方案一:修改node_modules/realm/lib/browser/rpc.jsif (global.__debug__) { let request = global.__debug__.require('sync-request'); let response = request(...

2019-01-24 13:24:43 703 1

原创 Android 编译版本、support、主题版本那些事

compileSdkVersion, minSdkVersion , targetSdkVersioncompileSdkVersion:编译版本,控制可以使用哪些 API 。不会被包含到 APK 中minSdkVersion :最低兼容版本targetSdkVersion:应用运行时使用的版本,即使使用了高版本API也不会生效合理的关系 minSdkVersion <= targ...

2018-09-29 16:49:04 1434

原创 Android .so 文件使用

Android 上 启动 每个 App, 都会 为 App 创建 一个 虚拟 机。Android 的 64 位 系统,加载 32 位 的 so 或者 App 时, 会在 创建 一个 64 位 的 虚拟 机 的 同时, 还 创建 一个 32 位 的 虚拟 机, 这样, 就能 兼容 32 位 的 App 应用 了。所以, 在 App 中, 保留 一个 armeabi- v7a 版本 的 so 就 足够 了。64 位 Android 系统 会在 32 位 的 虚拟 机上 加载 它。

2018-09-25 17:07:27 2351 1

原创 ImageView的scaleType属性

ImageView的scaleTypematrix:matrix表示原图从ImageView的左上角开始绘制,如果原图大于ImageView,那么多余的部分则剪裁掉,如果原图小于ImageView,那么对原图不做任何处理fitXY:填充整个ImageView,不会按照原图的比例来缩放fitStart:将图片按比例缩放至View的宽度或者高度(取宽和高的最小值),然后居上或者居左显示fi...

2018-08-07 13:02:55 422

原创 使用 WebView 时需要注意的一些问题

内核版本在Android 4.4以下(不包含4.4)系统WebView底层实现是采用WebKit内核,而在Android 4.4及其以上Google 采用了chromium作为系统WebView的底层内核支持。注意点Android SDK 16 以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正 确限制使用 WebView. addJavascriptInterfac...

2018-08-02 10:38:24 2027

原创 Android 状态栏那些事

3.0(可以显示或隐藏状态栏)View中加入了一个void setSystemUiVisibility (int visibility) 方法。随着该方法一同出来的有两个属性:STATUS_BAR_HIDDEN、STATUS_BAR_VISIBLE。并且还加入了View.OnSystemUiVisibilityChangeListener来监听系统UI的变化。4.0(优化隐藏状态栏...

2018-07-10 14:05:53 307

原创 Android 颜色透明度对照表

不透明100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% — 6635% — 5930% — 4D25% — 4020% — 3315% — 2610% — 1A5% — 0D0% — 00全透明。

2018-07-05 10:55:10 2053

转载 Android 插件化技术简史

2012年的时候,大众点评的屠毅敏,推出了AndroidDynamicLoader框架,他使用一个Activity作为外壳,动态加载一个未安装apk中的Fragment,并通过外壳Activity来处理Fragment的全部生命周期,达到动态加载一个Android视图界面的效果。2013年,出现了23Code。23Code提供了一个壳,在这个壳里可以动态下载插件,然后动态运行。可以在壳外编写各...

2018-06-27 16:46:36 312

原创 Android Studio Gradle 编译加速

升级到最新版本GradleC:\Users\Administrator.gradle目录下创建gradle.properties文件并配置#编译时使用守护进程,避免冷启动org.gradle.daemon=true#为Gradle分配足够大的内存org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOn...

2018-06-19 12:48:29 478

转载 微信小程序基本原理

小程序 MINA 架构

2018-06-12 20:44:52 3704

原创 Android 调试

快捷键单步调试(F8)进入方法内部(F7)退出当前方法,去到该方法调用处的下一行(上档键+F8)跳到下一个断点(F9)高效断点条件断点先在需要的行前左键单击添加普通断点,右键点击该断点出现对话框,在“Condition”处填入条件即可,条件语法同 Java,如 i == 98。点击 Done,完成添加。这样当条件未满足时,不会阻塞程序运行;当条件满足时断点被触发。日志断点在条件断点弹出的对话框里,将“suspend”设置为未选中状态,断点触发时就不会被阻塞。我们选中“Eva

2018-05-31 13:05:30 518

原创 Android 开发遇到的杂七杂八问题

Android Studio > Settings > Appearance & Behavior > System Settings > Updates > 把Use secure connection勾选去掉。Android Studio > Settings>Build,Execution,Deployment > Instant Run > 把Enble Instant Run…如果有git bash 用rm -f -r 文件夹删除。

2018-05-08 16:07:10 750 1

原创 React Native 常用命令与属性总结

常用命令创建工程:react-native init 项目名称查看RN本地版本:react-native –version更新RN本地版本:npm update -g react-native-cli查询RN的npm包最新版本:npm info react-native升级或者降级npm包的版本:npm install –save react-native@0.18更新项目temp...

2018-05-03 21:36:32 310

原创 Android 各版本系统适配的一些注意点

5.0通知栏 使用appcompat-v7库中提供NotificationCompat.Builder替换Notification.BuildersetSmallIcon图片资源只使用alpha图层来进行绘制,而不应该包括RGB图层。换句话说就是图片不能有背景色 ,颜色可以通过setColor设置6.0权限 运行时危险权限需要在使用到改权限时动态申请7.0...

2018-04-27 17:10:26 3193

原创 Android 存储目录详解

内部存储空间中的应用私有目录data/data/app package name:WebView 缓存页面信息,SharedPreferences 和 SQLiteDatabase 持久化应用相关数据等当用户卸载 App 时,系统自动删除 data/data 目录下对应包名的文件夹及其内容。getFilesDir()getCacheDir()宿主 App 可以直接读写内部存储空间中的...

2018-04-19 10:47:23 1175

原创 Android 开源热库汇总(二):快速开发库

1.常用控件PhotoView一款ImageView展示框架,支持缩放,响应手势https://github.com/chrisbanes/PhotoViewCircleImageView圆角ImageViewhttps://github.com/hdodenhof/CircleImageViewStatusBarUtil一款提供设置沉浸式状态栏样式能力的框架https://github.com/l

2017-11-28 14:32:21 802

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除