首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 开发中有什么经典轮子值得自己去实现一遍?

最近在公司主导开发Android中间件,对中间件定义是:多个应用都会用到且相对独立功能,但不涉及UI部分,比如: 文件下载库 文件上传库 行为采集库 更新库 推送库 即时通讯库 账号库...关于开源库选型可以看下这几个链接,但在项目中具体用哪一个还得根据自身业务情况来定: Android开源项目推荐之「网络请求哪家强」 Android开源项目推荐之「图片加载到底哪家强」 国内Top500Android...随便写几个库需求和可能用到知识点列出来,题主可以根据自身情况试着造造轮子。...每个库还需要考虑到下面这些: 接口向前兼容和向后兼容问题; 库错误码设计问题; 库可能会导致性能问题(比如效率、功耗等); 库大小问题(尽量小,方便集成); 库设计、文档、Demo都需要考虑防呆...; 最后,说一下针对这个问题建议: 不建议撸自定义控件,意义不大,套路熟悉了其实做起来没什么收获; 开发一个库不难,难是在于持续维护以及是否能够满足业务上需求及需求变化; 建议结合实际业务

1.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    css 文件 304 错误什么原因引起

    CSS文件返回304状态码原因有以下几个: 1. 浏览器缓存了该CSS文件。...浏览器会缓存已经访问过CSS文件,当再次请求同一个文件时,浏览器会先检查缓存,如果缓存版本没有变化,就会返回304状态码告知服务器还用得着最新文件,使用缓存就行。...v=2 ,让浏览器认为这是一个新文件。 2. 服务器配置了Incorrect caching headers。如果服务器错误配置了永久缓存头信息,浏览器就会长期缓存CSS文件并始终返回304。...浏览器默认会缓存CSS文件,如果文件没有实际变化,需要强制刷新缓存才会拉取新文件。这时可以按Ctrl+F5(Windows)或Command+R(Mac)进行强制刷新。 5. 终端网络异常。...综上,导致CSS文件返回304状态码主要原因是浏览器缓存和服务器缓存头配置不当。在排除网络异常情况下,可以通过版本控制、配置正确缓存头信息和强制刷新缓存等方式解决这个问题。

    1.2K20

    Android获取清单文件meta-data,解决碰到数值为null问题

    1.meta-data是什么?如何获取meta-data?...”); 补充知识:android webview拦截替换本地资源,提升加载性能,节省流量 现在许多游戏都是直接提供一个访问地址,然后由webview去访问加载,加载速度快慢取决于网速,当然也耗流量...,这个时候,为了提高产品竞争力,产品经理就会提出需求了,web前端同学也就会把资源给到Android前端,接下来就是要做处理了,代码不多,用作记录: package com.dxgame.demo;...import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.support.annotation.RequiresApi...,将数据缓存到本地,方法就不列出来了,网上有很多,自行百度 以上这篇Android获取清单文件meta-data,解决碰到数值为null问题就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.5K20

    什么android API 中有很多对象创建都是使用new关键字

    什么android API 中有很多对象创建都是使用new关键字?...比起工厂方法、builder模式,java 中不提倡直接使用构造方法创建对象(new),为什么android API 中还是有很多对象创建都使用构造方法 ? 这只是个草稿 首先,谢邀。...其次,是怎么找到我知乎账号隐藏这么深(脸红了) 最后,加入了自己总结概括,让然也可以当成读书笔记来看。...这些标签中有几个域是必需:每份含量,每罐含量以及每份的卡路里,还有超过20个可选域:总脂肪量、饱和脂肪量、转化脂肪、胆固醇,钠等等。...那么我们真的需要把创建对象方式更改为Builder? 答案是,否定。 我们可以在可选域多样化条件下,考虑使用这种模式,而且我们应该注意:不要过度设计API。

    71830

    什么也不懂,能搞个自己网站?能!

    今天就给大家带来一个 最简单 最快 从0到1 网站搭建教程 大家准备好了吗? 首先呢来说一下我们搭建网站思路 ? 再说明白(具体)一点 ? 首先我们需要一台服务器 服务器是个什么东西?...) 有了服务器之后我们需要给服务器选择一个系统 一般我们会选择高效方便Linux系统 Linux系统有好几个不同版本 例如Ubuntu,Centos,Redhat等 在本文就使用Ubuntu系统了...(如果你是其他系统服务器, 可以私聊安装教程) 我们首先来介绍一下如何连接服务器 你拿到(或设置好)自己服务器密码之后 可以使用xshell或者putty工具进行连接 因为是属于那种比较偷懒...确认后输入密码即可连接了 这边要说要一下 输入密码时候自己要记好 因为系统不会显示你输入密码 输完就敲回车 ? 接下来需要借助于Docker来帮助我们部署环境 Docker是个什么东西?...因为我们下载下来是个zip文件 使用我们需要解压一下 unzip jiaoben7143.zip ?

    2.2K30

    法语MSDS是什么文件法语MSDS是直接翻译

    图片 一、法语MSDS是什么文件: MSDS是 Material Safety Data Sheet 英文单词首字母缩写,直译为材料安全数据表,通常被理解为材料安全说明书。...主要是通过这份文件向货运公司,使用者等接触产品相关方说明产品有哪些危险或危害,接触过程中需要注意什么,要做好哪些防护等,随着经济发展货物流通不断加大和人们安全意识不断提高,MSDS这样说明资料已经被普遍要求...二、法语MSDS是直接翻译: 与直接翻译MSDS/SDS相比,我们认为重新制作符合新法规MSDS/SDS更合适。不仅可以符合新法规要求,而且也可以对产品信息进行更新,另外也可以节省费用。...三、法语MSDS制作流程如何 1.填写申请表,关键是填写产品成分或者材质信息,这个是评估基础。 2.收到申请表之后,我们会核实信息是否填写完整,确认无误后,安排制作。...4.完成之后是PDF格式电子档文件,直接发送到邮箱即可,平时有需要用时候邮件或者传真发给要求方即可。无需打印出来。

    68030

    批量导入Excel文件,为什么导入数据重复了?

    小勤:大海,为什么从Excel文件夹导入数据重复了? 大海:数据给我来试试看?...Step-01:新建查询-从文件夹 确定后,我们看到文件夹里有3个文件: 这里,显然是因为将合并工作表和数据源放在了同一个文件夹下,所以Power Query将合并工作表也显示了出来,并且...,还有一个前面带“~$”合并工作表,是因为合并工作表当前打开状态,生成了一个临时文件。...所以在后续编辑查询时候我们首先要把合并工作表内容过滤掉,否则以后刷新数据时会连合并工作表数据一起导入。...Step-05:选择Sheet类别的工作表 经过这样筛选后,我们最终导入数据就只有该工作簿中最原始工作表数据,后续操作就没有什么差别了,我们继续完成它。

    2.9K50

    python文件按回车闪退_为什么python文件夹闪退

    大家好,又见面了,是你们朋友全栈君。 有时候,我们在运行python程序时候会闪退,到底是什么原因呢?python文件是以.py结尾,可以自己在python环境下运行。...对于这种闪退情况,大概可以从以下几个方面分析。 第一步 首先找到我们平时编辑python后,将文件储存所在文件位置,尝试下双击,看是否能打开。...第二步 如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程序或者文本编译器看看是否能够打开文件先尝试了双击,未打开,接着选择打开方式–pthon,还是失败。...然后选择了平时文本编译器Geany,成功打开了命名为comment.py python文件。 第三步 尝试用文本编译器执行该python文件,看看能否运行。结果显示可以成功运行。...以上就是python运行窗口闪退(python打开文件出现闪退什么原因)一种解决办法,可能不能解决您当前问题,内容教程仅供参考。更多精彩教程资讯,请关注众星平台。

    4.4K40

    R中读取包含中文字符文件时这个诡异错误你见过?

    我们有一个文件,里面写了一些中文信息,命名为chinese.txt,内容为 Train Time 转录组开课时间 2021/10/29-2021/10/31 临床基因组学开课时间 2021/11/...宏基因组开课时间 2021/11/19-2021/11/21 扩增子开课时间 2022/01/07-2022/01/09 尝试读入R,报错 line 2 did not have 2 elements 很诡异提示...如果我们一直去数列数,这是怎么都不会发现问题。考虑到大多数程序语言对非英文支持不好,考虑是编码格式问题。..., what = what, sep = sep, quote = quote, dec = dec, : line 2 did not have 2 elements 解决方案1:指定编码格式 正确读了进来...有时在read.table中即使指定了fileEncoding = "utf-8"参数后依然解决不了问题文件,用readr毫无压力。

    2.2K10

    自适应软键盘Dialog以及监听软键盘弹起

    跟一般新手引导没有什么太大区别,思路都是搞一个带阴影遮罩层,然后在上边儿给一些提示性文字,由于需求中有些特殊地方,所以我用了一个全屏dialog(而且,dialog自带阴影效果)来做新手引导这个需求...我们知道,在Activity中如果要让布局不被软键盘遮挡,方法一般是在清单文件中配置windowSoftInputMode属性, windowSoftInputMode是Android1.5以后一个新特性...我们可以根据需求在清单文件中配置具体属性,那么如果软键盘是基于Dialog弹出来的话该怎么办呢?...毕竟我们没有清单文件来配置Dialog属性。其实,在清单中配置属性本质也是告诉当前界面对软键盘这种情况处理。...windowSoftInputMode属性如果在清单文件中配置的话是这样写android:windowSoftInputMode="stateHidden|adjustPan" 其实在清单文件某些配置

    3.4K30

    OpenGL学习进阶之旅】什么是TGA文件以及如何打开TGA文件?「建议收藏」

    大家好,又见面了,是你们朋友全栈君。 目录 一、问题描述 二、解决问题:打开TGA文件 三、什么是TGA文件? 四、 如何打开TGA文件 4.1. 使用图像编辑器打开TGA文件 4.2....也无法直接打开这些 .tag文件,如下所示: 二、解决问题:打开TGA文件 用TGA Viewer 软件 打开TGA图像,如下所示: 下面来正式介绍一下什么是TGA文件以及如何打开TGA文件...三、什么是TGA文件? 具有TGA文件扩展名文件是Truevision图形适配器图像文件。...TGA文件可以是未压缩原始文件,也可以是无损RLE压缩文件。 这种压缩方式对于图标和线条图之类图像非常有用,因为它们不像摄影图片那样复杂。...File Viewer Plus是Windows通用文件查看器,可以打开和显示300多种不同文件类型。 您还可以编辑文件,保存更改以及将文件批量转换为几种不同文件格式。

    3K30

    Android Q 兼容那些事

    后台 Activity 启动限制 首先我们说说为什么要限制后台 Activity 启动。 Android Q 之前情况如下: ?...另外目前可以通过在清单文件设置是否启用。可以设置 targetSDK 为 Q 应用不启用,也可以设置 targetSDK 低于 Q 启用。通过代码可以确认是否处于分区存储模式下。...推荐尽快完成适配,因为目前是为了给开发者更多时间适应这个变化,等到下一个版本 Android R 时候会强制执行分区存储模式,到时候清单文件设置也是没用。因此强烈建议将这个工作排上兼容行程。...现在看看 Android Q : ? 会发现多了一些选项,其中有一个仅在使用该应用时允许。 在 Android P 时候,清单文件只需要申请一个权限: ?...假设现在 Java 和 Kotlin 都可以实现我们业务功能,并且官方都支持这两种语言,你有必要花很多时间去单独学习 Kotlin 觉得没太大必要。

    97710

    使用C语言中文件什么技巧和注意事项?为什么不直接包含C文件呢?

    C语言头文件什么用处 在平时项目开发过程中特别是几个项目组在一起工作时候,有的时候代码不是完全开放,这个时候头文件和库作用就体现出来了,在头文件中可以看到这个模块使用结构体,以及静态变量或者定义一些宏...,最主要看到这个模块使用函数列表,同时有些关键函数功能还会在头文件里面做出说明,通常在项目推进过程中就可以通过头文件调用库里面的函数,从而完成单元测试。...刚才说文件是自己设计,这种在平时编程过程中使用场景还是非常多,在引用头文件时候需要注意要写清楚头文件所在目录,避免调用时候找不到头文件,还有一些头文件属于系统自带,比如常见printf...头文件在编译时候里面的宏都会舒展开,为了防止一个文件被包含多次就会在头文件开始位置设置#ifndef 这种字眼就是为了避免重复引用。...当然在实际开发过程中头文件设置成什么样子还和编程能力水平有一定关系,在模块设计过程中讲究高内聚低耦合,在模块内部使用函数就不要暴露在头文件中,防止外来操作对模块数据造成破坏,所以在设计头文件时候暴露在外部函数列表是深思熟虑

    1.6K30

    Android 逆向】启动 DEX 字节码中 Activity 组件 ( DEX 文件准备 | 拷贝资源目录下文件到内置存储区 | 配置清单文件 | 启动 DEX 文件组件 | 执行结果 )

    文章目录 一、DEX 字节码文件准备 二、拷贝 Assets 目录下 classes2.dex 字节码文件到内置存储区 三、在 AndroidManifest.xml 清单文件中配置组件 四、启动 DEX...文件 Activity 一、DEX 字节码文件准备 ---- 在 dex_demo 应用 Module 中 , 创建 com.example.dex_demo.MainActivity2 类 ;....dex , 这是为了与上一个示例中文件重名而修改 ; 二、拷贝 Assets 目录下 classes2.dex 字节码文件到内置存储区 ---- 将 app\src\main\assets\classes2...InvocationTargetException e) { e.printStackTrace(); } } } 三、在 AndroidManifest.xml 清单文件中配置组件...---- 将 com.example.dex_demo.DexTest 组件类配置到 AndroidManifest.xml 清单文件中 ; <?

    70810

    设计交付指南:设计师与开发如何才能好好协作?

    “设计交付”是什么意思? 首先,必须声明,数字产品“完成设计”状态是并不存在。因为我们总能在这个“完成设计”基础上做得更多。...因此,在本文中“设计交付/移交”指的是设计师将自己设计想法转达给开发人员。 由于设计交付指的是一个阶段结束,因此大家很容易犯只关注上传、导出和指定设计等典例做法错误(就经常犯这样错误)。...图片:高保真屏幕流程完美地帮助开发解释功能工作原理。 设计中面临挑战 1. 边缘情况和空状态 特意将这一点放在挑战清单上,以确保它们也能列入你清单。...对于开发人员来说, 除了Android以外,导出图标从来不是易事。大多数设计师使用颜色蒙版图标(这是迄今为止在Sketch中重新着色图标最方便方式),Android Studio无法导入这些图标。...不过目前使用Zeplin中有个问题是,设计师从Zeplin导出到Illustrator图标:在某些情况下,会出现图层混乱,文件变得更大,图标设计变形情况。

    64130

    【科研利器】你想知道Linux下文件颜色代表什么

    现在接触多了才发现,服务器上文件颜色居然是花花绿绿耶,有红、黄、蓝等等,好不有趣。仔细一研究才发现,原来不同颜色呀,代表着不同文件类型呢! 好了,话不多说,一起来认颜色吧!...白色:表示一般文件,如日志文件(.log)、模式输出文件(wrfout)等。 蓝色:表示目录,如home、usr目录等。 绿色:表示可执行文件或程序,如.exe文件等。...红色闪烁:如果是非压缩文件或包文件,但显示为红色,通过ll命令查看时有红色闪烁,表示该链接文件存在有问题。 紫红色:图形文件,如.png图片。 以上是Linux系统默认颜色设定。...通过了解这些颜色所代表含义,有利于我们迅速区分文件类型,在解决报错时候也是大有用处。比如运行real.exe时报错某个文件存在问题,但那是个软链接文件。...这时你最好去它原地址进行检查,便于找出其出现问题真正原因。 那么,会不会有朋友跟我一样好奇,这服务器下不同类型文件显示颜色能不能更改呢?答案是当然可以。具体如何修改,请听下回分解!

    1.6K20

    ClassNotFoundException解决方案总结

    首先看你logcat中是否显示Caused by : java.lang.ClassNotFoundExcetion.. 2,产生条件 什么时候会抛出classnotfoundException异常呢.../article/details/50773255  2》,是否使用了重复类库,且版本不一致,导致低版本被优先使用  3》,类名错了,在调用class类中forname方法时会出异常,很明显,是在调用...classloaderloadclass方法时出错  4》,没有导入纯Java驱动包  还有一些初级错误比如  5》,清单配置文件中是否activity路径错误,activity名字是否错误 还有尽量不要使用中文作为项目名称...检查时发现包名是错误 目录结构如下: 也就是说mainactivity类位于src/activity包下,而我清单配置文件package却配置错误 导致找不到该MainActivity 1》此时要么改变清单配置文件包名 将包名改成如下即可

    5K20

    错误记录】编译 Android 版本 ijkplayer 报错 ( .init-android.sh: 第 37 行: cd: androidcontrib: 没有那个文件或目录 )

    文章目录 一、报错信息 二、解决方案 一、报错信息 ---- 编译 Android 版本 ijkplayer 时 , 执行 init-android.sh 脚本 , 报如下错误 ; root@octopus.../init-android.sh: 第 37 行: cd: android/contrib/ffmpeg-x86: 没有那个文件或目录 root@octopus:~/ijkplayer/ijkplayer-android..."armv5" pull_fork "armv7a" pull_fork "arm64" pull_fork "x86" pull_fork "x86_64" 上述 shell 脚本中 pull_fork...方法 , 接收参数主要是用于创建目录 , 指定目录名称 ; 前面的几个版本 ffmpeg , 如 : " armv5 " , “armv7a” , “arm64” , “x86” , 下载检出代码都很成功..., 但是最后 “x86_64” 版本 , 出现 fatal: unable to access 'https://github.com/Bilibili/FFmpeg.git/': gnutls_handshake

    2.7K20
    领券