android
文章平均质量分 87
__卓原
程序员~
展开
-
Android View的绘制过程复习
Android View的绘制过程DecorView是一个应用窗口的根容器,它本质上是一个FrameLayout.DecorView有唯一一个子View,是一个垂直的LinearLayout,包含两个子元素:TitleView(ActionBar的容器) 和 ContentView(窗口内容的容器).ContentView是一个FrameLayout(android.R.id.content),我们平时用的setContentView就是设置它的子View.上图还表达了每个Activity都与一个原创 2020-06-26 11:56:18 · 655 阅读 · 0 评论 -
入门 Android Lint
Lint Android Lint 是Android Studio 在ADT(Android Developer Tools)16提供的代码扫描工具,可以帮助我们发现和更正代码结构质量的问题。系统会报告该工具检测到的每个问题并提供问题的描述消息和严重级别,以便快速确定需要优先进行的修改。此外,我们还可以通过降低问题的严重级别以忽略与项目无关的问题,或者提高严重级别以突出特定问题。优点无需实际执行应用不必编写测试用例Lint工作流下图显示了 lint 工具如何处理应用源文件。App原创 2020-06-18 22:29:39 · 2949 阅读 · 0 评论 -
通关Android Lint
施工中Lint Android Lint 是Android Studio 在ADT(Android Developer Tools)16提供的代码扫描工具,可以帮助我们发现和更正代码结构质量的问题。系统会报告该工具检测到的每个问题并提供问题的描述消息和严重级别,以便快速确定需要优先进行的修改。此外,我们还可以通过降低问题的严重级别以忽略与项目无关的问题,或者提高严重级别以突出特定问题。优点无需实际执行应用不必编写测试用例Lint工作流下图显示了 lint 工具如何处理应用源文件。[外原创 2020-06-10 13:08:56 · 1599 阅读 · 0 评论 -
Android BottomSheetDialogFragment 可随手势滑动关闭的底部弹窗
在APP开发中,经常会有一个需求:从底部弹出弹窗,并且可以跟随手指滑动关闭弹窗.简介BottomSheetDialogFragment是位于com.google.android.material包下的一个类.BottomSheetDialogFragment 继承自AppCompatDialogFragmentAppCompatDialogFragment继承自DialogFragme...原创 2020-03-31 17:55:51 · 7094 阅读 · 3 评论 -
集成FlutterBoost
在Flutter发布了1.12版本之后 , 在原生程序中集成flutter的方式也有了改变 , 于是重新走一遍流程.本次操作基于以下版本:Flutter 1.12.13+hotfix.5 • channel stableAndroid Studio 3.5.2Android集成Flutter的意义有时一次全部在Flutter中重写整个应用程序是不切实际的。在这种情况下,Flutter...原创 2020-01-03 14:29:58 · 2756 阅读 · 0 评论 -
Android LifeCycle监控生命周期
LifeCycle的作用是感知组件(Activity/Fragment)的生命周期 , 并在合适的生命周期执行分配的任务.1.监听组件生命后期假设我们此时有一个Util类,其中有两个方法需要分别在Activity的onStart和onDestory的时候执行,我们可以先让它实现LifecycleObserver:class LifecycleUtil : LifecycleObserver ...原创 2019-12-27 15:35:09 · 3861 阅读 · 1 评论 -
Android 监听键盘状态 获取键盘高度
Android暂时还没有提供一个合适的API来获取/监听键盘的状态和高度 , 而我们又经常会有这个需求.最近我的一个项目中,在ugc页面需要在键盘顶部,紧贴着键盘显示一个文字提示,当键盘消失时就隐藏.因此,我需要监听软键盘的打开/关闭 , 以及获取它的高度.ViewTreeObserverA view tree observer is used to register listeners...原创 2019-12-25 11:25:30 · 2691 阅读 · 1 评论 -
Android VideoView 视频播放器 仿抖音
前言最近项目有个需求 , 做个类似抖音的视频效果. 又因为包大小的问题不使用第三方SDK,所以使用原生的VideoView开发了一下, 搭配RecyclerView和PageSnapHelper来实现抖音的效果.全部代码: github看一下实现流程:首先创建了一个继承自ConstraintLayout的View,用来实现自己的布局.东西不多, 里面主要是播放控制的按钮, 和一个可以...原创 2019-11-27 15:57:40 · 7131 阅读 · 7 评论 -
Java 反射
JAVA反射机制JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制功能1、获得某个对象的属...原创 2019-11-15 16:23:29 · 1853 阅读 · 0 评论 -
Android 弹窗 DialogFragment
前言一直以来 , 做弹窗功能的时候都是使用的Dialog , 布局复杂的弹窗则使用Activity , 把背景设置成透明, 最近了解到一个DialogFragment , 发现使用起来更加方便, 也是谷歌建议的做法.简介DialogFragment 继承自Fragment , 所以它的用法基本跟Fragment一致 , 也包含了一些生命周期和上下文context 和 监听之类的东西. 而且...原创 2019-10-30 17:52:44 · 6327 阅读 · 1 评论 -
react-native 打包apk 之 安卓离线包全过程
前言:完成项目时,我们需要将项目打包成一个apk,方便测试以及发布版本.这时,需要把js代码和图片资源都放进apk中, 并且发布版本还需要签名,今天把这一系列操作记录下来.一.生成离线bundle包离线包就是把 ReactNative 和你写的 js文件、图片等资源都打包放入 App ,不需要走网络下载。首先看一下官方给的参数(中文版):react-native...原创 2017-08-14 15:47:03 · 22105 阅读 · 0 评论 -
Android 内存优化——常见内存泄露及优化方案
如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄露。在 Android 开发中,一些不好的编程习惯会导致我们的开发的 app 存在内存泄露的情况。下面介绍一些在 Android 开发中常见的内存泄露场景及优化方案。单例导致内存泄露单例模式在 Android 开发中会经...翻译 2019-10-22 15:19:40 · 1466 阅读 · 0 评论 -
Android四大组件——Acitivity生命周期
最近一直在做React Native开发 ,Android很多东西都记不牢了 所以重温一下FirstActivity创建时:: onCreate --- onCreateView --- onStart --- onResume 之后进入运行态跳转到SecondActivity时,FirstActivity执行onPause方法 然后新的Activity执行onCreate ...原创 2017-03-29 20:29:44 · 561 阅读 · 0 评论 -
Android apk打包命名规则
摘要:前言在日常的开发过程中,许多刚入行的开发者在apk打包命名、应用迭代版本的档案留存管理上都比较混乱——产生这些问题的原因无外乎以下两种:一是之前没有相关的操作经验、头尾不能兼顾;一是公司没有制定对应的规范、无有效参照范例。当然,所谓的规范在业内不会存在唯一的标准与格式(对于规范的理解,本人认为是相对容易让大众接受、理解、掌握的行为准则),所以,本文的目的在于探讨、交流、引导,还望各位不吝赐教...转载 2018-11-12 14:21:56 · 5208 阅读 · 1 评论 -
ReactNavigation V2 监听物理返回键
首先导入BackHandler组件import { BackHandler,} from 'react-native';在构造函数中监听,并在willunmount中取消它constructor(props) { super(props); this.state = {}; BackHandler.addEventListene...原创 2018-08-07 11:06:15 · 2116 阅读 · 6 评论 -
命令行方式打开android模拟器
先进入android sdk中的emulator目录 cd C:\Users\Frank\AppData\Local\Android\Sdk\emulator然后执行: emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_28Nexus_5X_API_28 为我的虚拟机名称。可以使用以下命令查询已...原创 2018-07-06 18:11:57 · 3965 阅读 · 0 评论 -
react-native-i18n 语言切换工具
yarn add react-native-i18nAndroid在./android/settings.gradle文件中添加下列代码:include ':app', ':react-native-i18n'project(':react-native-i18n').projectDir = new File(rootProject.projectDir, '../node_m...原创 2018-06-29 00:08:06 · 3613 阅读 · 0 评论 -
react-native 轮播组件 looped-carousel使用介绍
一 关于轮播类组件,网上其实已经有挺多了,本人曾经用过 swiper,viewpager,以及facebook出品的viewpagerAndroid。swiper因在安卓上有问题,而且在组件嵌套使用时问题较多,所以弃用。后来尝试viewpager,因为轮播时,下面的圆点显示有误,所以弃用。而ViewpagerAndroid因为只支持安卓系统,所以很少用到,在ios必须另找组件。最近原创 2017-07-31 14:58:42 · 8304 阅读 · 7 评论 -
react-native播放视频组件 react-native-video的用法
react-native-video 是一个播放视频的开源组件,它的用法很简单。1.安装依次执行下面两个命令,npm i -S react-native-videoreact-native link (这一步是连接本地视频库)(1) ios:如果您想允许其他应用在您的视频组件上播放音乐,请添加:AppDelegate原创 2017-06-10 16:55:18 · 27316 阅读 · 7 评论 -
react-native SectionList的使用
之前facebook发布了高性能的列表组件 Flatlist(可理解为优化后的Listview),后来又增加了一个SectionList。属于增强版的Flatlist,支持头部悬浮等,如果你的列表不需要分组(section),那么可以使用结构更简单的<FlatList>。关于FlatList的使用,可参考:react-native flatlist 的进阶使用而且二者之间有...原创 2017-08-03 16:25:11 · 4402 阅读 · 1 评论 -
react-native flatlist 的进阶使用 (头尾,间隔组件和滚动事件)
0.43之后 RN添加了Flatlist组件,作为ListView的增强版,FlatList有着很强的性能上的优势,而且使用起来也更简单。最基础的:<FlatList data={[{key: 'a'}, {key: 'b'}]} renderItem={({item}) => Text>{item.key}Text>}/>最好是给data数据每一个item都添加一个ke原创 2017-07-04 22:26:22 · 30204 阅读 · 5 评论 -
react navigation的学习与使用
在很久之前,RN中文网说推荐用react-navigation替代navigator作为新的导航库,从RN 0.43版本开始,官方就已经停止维护Navigator了,所以强烈建议大家迁移到新的react-navigation库,而且新的导航库无论从性能还是易用性上都要大大好于老的Navigator!附上英文文档地址,这个是我自己写的导航例子:https://github.com/lizhuoyua...原创 2017-06-04 00:03:33 · 10928 阅读 · 2 评论 -
ReactNative 图片上传保存 CameraRoll的使用
本文主要介绍CaremaRoll的使用(保存图片,获取手机图片) 图片上传(常用于上传头像功能)CaremaRoll介绍结合官方文档做说明:CameraRoll模块提供了访问本地相册的功能。在iOS上使用这个模块之前,你需要先链接RCTCameraRoll库,具体做法请参考链接原生库文档。译注:本模块只提供了基本的访问图片的功能,并没有提供相册界面。对于多数开发者来说,可能原创 2018-01-16 15:43:08 · 5697 阅读 · 1 评论 -
Android 多渠道配置打包
设置app的build.gredleproductFlavors在android节点下添加如下代码://配置多版本的apk productFlavors { oneplus { applicationId "com.android.application.oneplus" manifestPlaceholder原创 2018-02-05 17:00:05 · 1439 阅读 · 0 评论 -
ReactNative 抽屉组件 侧滑栏 react-native-side-menu
示例图:安装npm install react-native-side-menu --save使用引入组件import SideMenu from 'react-native-side-menu';使用组件:render() { const menu = Text style={{marginTop: 22}}>aaaText原创 2018-02-06 14:50:12 · 7455 阅读 · 1 评论 -
reactnative热更新 react-native-pushy
快速入门-准备工作首先你应该有一个基于React Native开发的应用,我们把具有package.json的目录叫做你的”应用根目录”。如果你还没有初始化应用,请参阅开始使用React Native。所以我们也假设你已经拥有了开发React Native应用的一切环境,包括Node.js、npm、XCode、Android SDK等等。如果你之前没安装过,你还必须安装Androi...原创 2018-02-08 17:09:03 · 4074 阅读 · 1 评论 -
ReactNative 原生UI组件 桥接原生 Android
React Native已经封装了大部分最常见的组件,譬如ScrollView和TextInput,但不可能封装全部组件。而且,说不定你曾经为自己以前的App还封装过一些组件,React Native肯定没法包含它们。幸运的是,在React Naitve应用程序中封装和植入已有的组件非常简单。原生视图需要被一个ViewManager的派生类(或者更常见的,SimpleViewManager的派...原创 2018-04-02 16:10:00 · 2492 阅读 · 1 评论 -
ReactNative 热更新,集成CodePush
开篇先介绍另外一种热更新方式:pushy, 这是rn中文网推荐的,phshy集成方法CodePush简介CodePush 是微软提供的一套用于热更新 React Native 和 Cordova 应用的服务。 CodePush 是提供给 React Native 和 Cordova 开发者直接部署移动应用更新给用户设备的云服务。CodePush 作为一个中央仓库,开发者可以推送更新...原创 2018-05-16 00:39:13 · 1013 阅读 · 0 评论 -
ReactNative 启动白屏解决方案 react-native-splash-screen
安装1.添加 yarn add react-native-splash-screen 2.自动link react-native link 或者 react-native link react-native-splash-screen修改原生代码Android:通过以下更改更新MainActivity.java以使用react-native-spl...原创 2018-06-29 15:36:31 · 1578 阅读 · 0 评论 -
react-native-firebase 登录功能集成与实现
以下内容基于 react-native-firebase 版本4.1 安装iOS安装首先确保您已遵循。初始设置指南 Add the pod将以下内容添加到您的Podfile:pod 'Firebase/Auth'run pod update。如果您打算使用电子邮件登录链接,那么您还需要遵循。iOS动态链接安装指南Android安装添加依赖项...原创 2018-07-02 17:37:56 · 4717 阅读 · 0 评论 -
React Native Firebase
React Native Firebase 介绍RNFirebase使用Firebase和React Native简单。它是一个轻量级的图层,位于iOS和Android的原生Firebase库的顶部,尽可能地反映Firebase Web SDK。虽然Firebase Web SDK库可以与React Native一起使用,但它主要是为Web构建的。RNFirebase为iOS和Andro...原创 2018-07-03 10:00:25 · 2073 阅读 · 0 评论 -
react-native调用Android原生模块
今天学习了一下在react-native中调用原生安卓模块的使用,发现很多网上的文章都是直接照抄的文档,这样会有一些坑,导致最后无法运行或者成功调用,所以写下这个博客来分享,同时也记录一下学习过程,方便以后查看。学习理由:有时候App需要访问平台API,但React Native可能还没有相应的模块包装;或者你需要复用一些Java代码,而不是用Javascript重新实现一遍;又或者你需要原创 2017-06-12 23:23:09 · 3358 阅读 · 5 评论