自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郝捷的专栏

劝君莫惜金缕衣,劝君惜取少年时。

  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

原创 RN拆包解析

一. 拆包动机RN作为非常优秀的移动端跨平台开发框架,在近几年得到众多开发者的认可。国内各大厂采用在当前原生应用内集成RN的方式,使得App应用的灵活性得到了很大的提升。在原生应用内嵌入RN,就是需要在原生应用内加载RN模块(1个或多个JSBundle),并得以显示。JSBundle中包含了当前RN模块的js代码。如果存在多个RN模块需要被加载时,就需要分别打出多个JSBundle,并且多个JS...

2020-01-14 17:40:28 905

原创 原生RN与58RN启动流程分析

一.原生加载流程我们知道RN的页面也是依托Activity,React Native框架里有一个ReactActivity,它就是我们RN页面的容器。ReactActivity里有个ReactRootView,正如它的名字那样,它就是ReactActivity的root View,最终渲染出来的view都会添加到这个ReactRootView上。ReactRootView调用自己的startR...

2020-01-14 17:39:47 629

原创 ReactNative fetch源码分析

原生分析的是安卓端核心代码//react-native/vendor/core/wehatwg-fetch.jsself.fetch = function(input, init) { return new Promise(function(resolve, reject) { var request = new Request(input, init); v...

2020-01-14 17:38:51 714

原创 RN对性能监控的思考及工具分享

分享内容全局属性Context性能监控debug工具一.全局属性Context1.概念当你不想在组件树中通过逐层传递props或者state的方式来传递数据时,可以使用Context来实现跨层级的组件数据传递。上图,使用props或者state传递数据,数据自顶下流。使用Context,可以跨越组件进行数据传递。使用Context如果要Context发挥作用,需要用到两...

2020-01-14 17:24:35 1562

原创 RN bundle自动化静态扫描

背景起因是在排查公寓找室友bundle过大问题时,发现house-middle-sdk体积异常,逐个删减引用得出结论是引用了node-forge库导致,通过这次手动排查经历演化出做一个bundle自动化静态扫描的想法。介绍安装npm i house-cli -g使用根目录添加metro.config.js文件//里面引用全局路径(这个后面优化一下)module.exports ...

2020-01-14 17:23:48 243

原创 react-native metro 分析

文章目录前言概念ResolutionTransformationSerialization打包方式MoudlesPlain bundleIndexed RAM bundleFile RAM bundle流程前置流程resolve流程Transformer流程序列化流程缓存为什么要缓存缓存的请求与缓存Metro配置结构前言metro是一种支持ReactNative的打包工具,我们现在也是基于他来...

2020-01-14 17:17:38 2128

原创 老生常谈MVP架构

原生框架问题由于原生 Android 开发应该已经是一个基础的 MVC 框架,所以在初始开发的时候并没有遇到太多框架上的问题,可是一旦项目规模到了一定的程度,就需要对整个项目的代码结构做一个总体上的规划,最终的目的是使代码可读,维护性好,方便测试。 只有项目复杂度到了一定程度才需要使用一些更灵活的框架或者结构,简单来说,写个 Hello World 并不需要任何第三方的框架

2018-04-23 11:23:18 909

原创 ReactNative入门-用webstorm调试

目的之前一直用chrome调试,一个是不习惯前端调试方法,毕竟是android 出身嘛还是习惯IDE调试,还有就是源码位置总要滑到底才能找到,很麻烦。突然发现ReactNative也能用IDE调试真是喜出望外啊,将配置和调试方法记录一下。IDE设置首先配置项,点击Edit Configurations然后配置react native启动项 其中有几点说明一下

2018-01-12 09:09:04 5469

原创 android nexus私服的使用

先唠叨几句啊,由于公司私服已经搭好了我就不费那劲琢磨搭建私服的事了,直接开撸上传lib。下图是我放组件库的地方,本来想一个module拉出一个项目来维护,后来想想实在是麻烦,同时维护多个库就要down多个库下来,于是就统一管理了。当然统一维护module多了自然会影响编译的速度,可以在settings.gradle 里将不编译的module注释掉就可以了。现在就有图片选择、表情、输入框、星星、视频录

2017-12-05 00:35:25 1112

原创 todo-mvvm-databinding源码分析

目的分析和学习官方mvvm框架的设计模式和数据绑定在其中的具体用法,制作一套符合当前公司业务场景的mvvm框架。其中也分析一下数据源在项目中的设计以及框架中单元测试的实施。设计模式MVVM框架中的ViewModel相比MVP框架中的Presenter起着类似的作用。两种框架结构的不同之处在于View分别与ViewModel或Presenter进行通信

2017-11-28 23:36:07 927

原创 Data binding 入坑笔记三layout表达式详解

Data binding 入坑笔记一入门篇 Data binding 入坑笔记二进阶篇之双向绑定 前两篇介绍了基础知识和双向绑定,今天我们来详细剖析一下layout语法规则,以便能灵活使用data binding

2017-11-21 17:23:10 4119 2

原创 Data binding 入坑笔记二进阶篇之双向绑定

Data binding 入坑笔记一入门篇 上一篇介绍了Data binding的基础用法,你可能会想这也太基础了,只支持前置数据的绑定,一旦数据变化了UI都监听不到。不要着急,这一篇就来讲到databinding的双向绑定用法。

2017-11-19 20:23:49 6684

原创 Data binding 入坑笔记一入门篇

数据绑定已经推出两年多的时间了,是时候下一波水了,边学习边记录一下实战步骤以及踩过得一些坑。

2017-11-19 18:17:35 750

翻译 Android Studio3.0新特性

Android Studio是Android开发的官方IDE,包含构建Android应用程序所需的一切。要获取最新版本,请单击帮助>检查更新(在Mac上,Android Studio>检查更新)。3.0(2017年10月)Android Studio 3.0.0是一个主要版本,包括各种新功能和改进。 macOS用户:如果您正在更新旧版本的Android Studio,则可能会遇到一个更新错

2017-11-14 11:06:54 712

原创 Android中AOP实践之三AspectJ解析篇

介绍AspectJ是Java的一个简单实用的面向方面的扩展。通过几个新的构造,AspectJ提供了对一系列横切关注的模块化实现的支持。在现有的Java开发项目中采用AspectJ可能是一个简单而且增量的任务。一条路径是从开发方面开始,继续使用生产方面,然后在使用AspectJ建立经验之后再使用方面。采用也可以遵循其他途径。例如,一些开发人员将从马上使用生产方面受益。

2017-11-12 16:25:40 1010

原创 Android中AOP实践之二场景篇

上一篇介绍了切面编程AOP的概念,这一篇来讲讲常用的场景,在项目应用中可以分为通用场景和业务场景两种。其中通用场景我用到了日志输出、方法计时、异步操作、异常拦截、动态权限等,业务场景用到了登录验证和单次点击。整个AOP编程是基于aspect实现的,至于实现原理我想放到下一篇再讲。

2017-11-09 18:13:37 571

原创 Android中AOP实践之一概念篇

在说AOP之前先来说说java最经典的OOP(面向对象编程),我们通过面向对象的封装思想把同一类事物的共性归为一类中,方便我们统一管理。比如我们会把汽车的轮子,发动机,车身喷漆都放在汽车这个类中。这样的好处是良好的封装能够减少耦合,隐藏信息实现细节。但是试想一下如果每个类中有没有重复调用的代码呢?比如日志输出、缓存处理。这里就需要用到AOP思想了。什么是AOP编程

2017-11-07 17:50:10 250

原创 Android原生项目转RN项目步骤

Android原生项目转RN项目

2017-10-09 13:32:49 2072

原创 集成到现有原生Android应用错误集锦

ps: 坑多的有点过分啊亲~错误1变更sdk目录后adb找不到 解决方案:修改ANDROID_HOME错误2react-native run-android Android project not found 解决方案: 应该在根目录执行转换将项目名改为androidsetting中加rootProject.name = 'MyappProject'错误3curl指令找不到 解决方

2017-09-29 15:58:14 380

原创 android项目分层解析

整体分层结构整体分为app和base两个层,app层作为项目的业务层,里面所有的分包都和当前业务相关。base层作为项目的框架层。业务与框架层级分离的好处:可以让我们更专注于业务的开发可以快速集成新的项目方便每个项目在原有框架上做快速的更新迭代业务层分层解析业务层内的基本分包是固定结构,因为每个项目都会有这些元素。因为富文本编辑器在互动讨论项目是重点,所以这里加上了一个editor包来统一管

2017-09-13 18:22:56 3400

原创 互动讨论总结和吐槽

互动讨论总结和吐槽周期

2017-09-13 18:16:08 314

原创 蓝农项目总结

蓝农项目总结

2017-09-13 17:57:33 308

原创 Android编辑器--多功能输入框重构

编辑器–多功能输入框重构类型

2017-09-13 17:53:19 823

原创 女生初级健身训练计划

初级训练计划给女票制定的健身计划…训练节奏热身无氧训练拉伸有氧训练训练安排前期可以练一休一,后面两天休一每个动作3组每组8-10次,后面如果没有力气尽量做到力竭单一动作组间间隔不超过40秒热身内容 跑步机2圈 速度6-8要点 匀速跑,保持呼吸均匀无氧训练第一天肩部胸部练习肩部肩绕环 向前向后肩部绕环站姿肩部深层激活哑铃侧平举胸部哑铃平地飞鸟哑铃平地卧推拉

2017-05-06 13:53:27 4069

原创 android技术栈-现有使用的进行一个汇总(初稿)

android技术栈开发工具Android studio开发语言Java自动化构建gradleapp技术组织架构基础层基础框架层专注于技术领域实现,提供app公有特性,避免重复制造轮子。注重性能和稳定性。需要不断稳固提高健壮性。

2017-04-24 16:19:40 5310

原创 app缩略图生成策略设计

app缩略图生成策略,参考微信今日头条。

2017-04-11 00:37:38 4442 1

原创 Android Studio 关于多个module引用同一jar包的问题

Android Studio 关于多个module引用同一jar包的问题 Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipExcepti

2017-03-20 16:43:43 16713 1

原创 android5.0以上手机host修改教程

host修改教程root手机修改host第一大关就是root,用超级adbd.apk完美解决不能完全root的问题

2016-09-19 15:58:18 10686

原创 Retrofit框架基本封装

序言本来想县写一篇关于Retrofit使用的文章为开端,不过网上到处都是而且也比较简单,写了也没人看哈。于是就从基本封装开始吧。 基本使用可以看这里Retrofit官方文档目的下面这个是Retrofit基本用法,可以发现每次调用请求的时候都需要创建一次retrofit对象,我们的目的就是简化请求操作,不用多次配置Retrofit。

2016-09-10 15:19:42 547

原创 android判题自定义view

RightOrWrongView这是一个判断对错的动画,场景可以用于试题的应用,来判断做题的正误啦:)引入到你的项目1.copy BallView.java 和 mipmap-xxhdpi里面的图片到项目中即可 2. 在values中的attrs.xml中添加 <declare-styleable name="circle"> <attr name="circleWidth"

2016-09-10 12:38:08 401

原创 android水波纹样式的小球View

BallView展示一个水波纹样式的小球,其实和早期的360监控流量的小球差不多啦,改了一种样式引入到你的项目copy BallView.java 和 mipmap-xxhdpi里面的图片到项目中即可用法1.在xml中调用 <com.app.ballviewdemo.BallView android:id="@+id/ballview" android:layo

2016-09-10 12:36:21 856

原创 新项目引入基础框架module流程

新项目引入基础框架module新建一个项目导入module 给module改名字应用module添加依赖此时项目中已经添加进了base的module 给主module添加依赖 其他在项目build.grade中添加注解框架需要的apt插件 dependencies { classpath 'com.android.tools.build:gradle:2.0.0'

2016-09-02 18:11:07 999

原创 将现有框架封装进module层

将现有框架封装进module层

2016-09-02 18:10:32 759

原创 项目现有框架总结

项目现有框架总结框架心得现有项目所用到的一系列框架都是经过各个项目时期不断调试走过来的,也踩了不少坑。不过对于现有框架的优劣之前并没有进行过详细的对比,只有适配框架深入研究并对比过。所以后面针对每一个框架需要做的:1. 是把现有框架的用法进行总结固化2. 对同类框架进行了解对比同类框架的优劣3. 对现有框架源码进行深入分析下一步虽然在项目中对现有的Activity和Fragment以及网络框架

2016-09-02 18:09:50 690 1

原创 androidannotations注解框架使用

androidannotations注解框架使用

2016-09-02 18:08:44 637

原创 android 适配性完全攻略

android 适配性完全攻略概要-一路走过来的过程  从2015年10月之前呢,都是走的dp单位+多组value文件的套路来适配的,这种老套路就不多说了,优点是稳定性强,只要是value文件涉及到的分辨率适配性都没的说,缺点也一目了然,那就是由于android机型的多样式,光要考虑到分辨率是不够的还要考虑密度,因为市场上总会存在一些奇葩机型,例如:分辨率是1920x1280,而密度不是该分辨率正常

2016-07-26 16:02:53 2017 3

原创 FragmentTabHost简单保存状态的方法

最近做新项目用Fragment做标签页切换,由于不需要滑动,所以就想到了FragmentTabHost,但是发现了它的一个问题,就是每次切换tab的时候声明周期都会重新加载页面,如何避免这种情况呢~

2016-04-11 17:50:45 1816

转载 android中xml tools属性详解

android中xml tools属性详解

2016-03-17 10:31:56 411

原创 androidtv-Leanback开源项目解析

项目展示 类图(待添加)项目流程主界面 项目入口是MainActivity,我们发现MainActivity非常简单。public class MainActivity extends Activity { /** * Called when the activity is first created. */ @Override public voi

2016-03-09 18:02:33 10501 3

原创 VelocityTracker

1. VelocityTracker速度追踪,用于追踪手指在滑动过程中的速度,包括水平和竖直方向的速度。代码示例: @Override public boolean onTouchEvent(MotionEvent event) { //初始化 VelocityTracker velocityTracker = VelocityTr

2016-03-07 10:36:39 793

超级adbd.apk最新版

手机一件root,软件强大。完美解决手机没有完全root的问题,重启手机也不会失效

2016-09-19

Android毕业设计-连连看游戏

功能强劲代码简单易懂有注释 页面华丽 可以设置三种难度 有死锁判断,变化功能,提示功能,排行榜数据库存储功能。有背景音乐以及提示音效 提示功能有缺陷,可自行完善,或向我提出好的建议

2013-09-27

空空如也

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

TA关注的人

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