当前位置: 首页 > news >正文

专门做二手的网站公司注册地址怎么写

专门做二手的网站,公司注册地址怎么写,做新闻类网站需要什么资质,各地网站备案LifecycleViewModelLiveDataViewBindingAndroid KTXOkHttp:网络请求Retrofit:网络请求MMKV:腾讯基于 mmap 内存映射的 key-value 本地存储组件Glide:快速高效的Android图片加载库ARoute:阿里用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦BaseR…LifecycleViewModelLiveDataViewBindingAndroid KTXOkHttp:网络请求Retrofit:网络请求MMKV:腾讯基于 mmap 内存映射的 key-value 本地存储组件Glide:快速高效的Android图片加载库ARoute:阿里用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦BaseRecyclerViewAdapterHelper:一个强大并且灵活的RecyclerViewAdapterStatusBarUtil:状态栏EventBus:适用于Android和Java的发布/订阅事件总线Bugly:腾讯异常上报及热更新(只集成了异常上报)PermissionX:郭霖权限请求框架Chuck:适用于Android OkHttp 客户端的应用内HTTP拦截器 显示请求信息LeakCanary:Android的内存泄漏检测库 使用方式 1.下载本项目删除无用的文件2.修改项目包名及各组件包结构,修改 AppName3.填写自己的 Bugly key 在 BaseApplication initialize() 方法中这样就可以使用了,当然可以删除不用的第三方,或者添加相应要使用的第三方,具体规范看下面的框架解读 Demo 项目里有一个demo分支,这是我写的一个小例子,可以结合Demo去熟悉这个框架 框架解读 组件化相关 本框架采用的是组件化架构,核心组件就是 Base 和 Common ,这两个组件都属于公共组件,负责为功能业务组件提供支持Base 组件主要集成了各种需要使用的第三方库和依赖或者公用的 aar/jar,并将依赖向依赖该组件的组件传递,需要集成的依赖,全部集成在 Base 组件内,Base 组件也提供了各种基类封装以及工具类、扩展函数、顶层函数,这些都应该是项目无关性的,可以达到 Base 模块直接拷贝复用的效果Common 组件主要是与项目有关的公用库,比如网络接口,全局常量, bean 类等,和项目有关的东西因该放在 Common 组件内,不要侵入 Base 组件,因为和项目有关的东西一旦放在了 Base 组件内,想要直接拷贝复用 Base 组件就不可能了,肯定会有一堆和项目相关的东西,项目的资源文件或者公用的资源文件最好统一放在 Common 组件内,方便公用,方便管理Base 和 Common 都属于公共组件,区别就在于 Base 比 Common 更底层,偏于与项目无关性,而 Common 是与项目有关性项目的依赖版本管理和项目参数等配置统一写在了 buildSrc 文件夹内,内部维护了几个 kt 文件进行对依赖库版本及项目参数统一存放管理功能组件应该依赖 Common 组件,壳 App 依赖所有的功能组件,要尽量避免各组件互相依赖,壳 App 内不要写东西,只当一个壳负责集成各个组件,每个组件都应该在 build.gradle 文件内设置资源命名规范,目的是为了避免资源冲突 android { resourcePrefix “资源名前缀” } 复制代码 各个功能业务组件可以单独运行,通过 buildSrc/BuildConfig.kt 中的 isAppMode 参数控制,项目业务复杂起来后,就需要为每个组件单独编写供其正常单独运行的逻辑代码 MVVM相关 MVVM 采用 Jetpack 组件 Repository 设计模式 实现,所使用的 Jetpack 并不是很多,像 DataBinding、Hilt(不支持多模块)、Room 等并没有使用,如果需要可以添加。采用架构模式目的就是为了解偶代码,对代码进行分层,各模块各司其职,所以既然使用了架构模式那就要遵守好规范Repository 仓库层负责数据的提供,ViewModel 无需关心数据的来源,Repository 内避免使用 LiveData,框架里使用了 Kotlin 协程的 Flow 进行处理请求或访问数据库,最后将数据发射到 ViewModel 调用者,Flow上游负责提供数据,下游也就是ViewModel获取到数据使用LiveData进行存储,View层订阅LiveData,实现数据驱动视图三者的依赖都是单向依赖,View - ViewModel - Repository 示例代码及注意事项 ViewModel ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。 使用方式: class MainViewModel : ViewModel(){ } class MainActivity : AppCompatActivity() { // 获取无参构造的ViewModel实例 val mViewModel ViewModelProvider(this).get(MainViewModel::class.java) } 复制代码 资料: 官方文档: developer.android.com/topic/libra… Android ViewModel再学不会你砍我: juejin.im/post/684490… LiveData LiveData是一种可观察的数据存储器类。与常规的可观察类不同LiveData 具有生命周期感知能力意指它遵循其他应用组件如 Activity、Fragment 或 Service的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者 LiveData 分为可变值的MutableLiveData和不可变值的LiveData 常用方法: fun test() { val liveData MutableLiveData() // 设置更新数据源 liveData.value “LiveData” // 将任务发布到主线程以设置给定值 liveData.postValue(“LiveData”) // 获取值 val value liveData.value // 观察数据源更改(第一个参数应是owner:LifecycleOwner 比如实现了LifecycleOwner接口的Activity) liveData.observe(this, { // 数据源更改后触发的逻辑 }) } 复制代码 资料: 官方文档: developer.android.com/topic/libra… Lifecycle Lifecycle 是一个类用于存储有关组件如 Activity 或 Fragment的生命周期状态的信息并允许其他对象观察此状态。 LifecycleOwner 是单一方法接口表示类具有 Lifecycle。它具有一种方法即 getLifecycle()该方法必须由类实现。 实现 LifecycleObserver 的组件可与实现 LifecycleOwner 的组件无缝协同工作因为所有者可以提供生命周期而观察者可以注册以观察生命周期。 资料: 官方文档: developer.android.com/topic/libra… ViewBinding 通过视图绑定功能您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。 在大多数情况下视图绑定会替代 findViewById 使用方式: 按模块启用ViewBinding // 模块下的build.gradle文件 android { // 开启ViewBinding // 高版本AS buildFeatures { viewBinding true } // 低版本AS 最低3.6 viewBinding { enabled true } } 复制代码 Activity 中 ViewBinding 的使用 // 之前设置视图的方法 setContentView(R.layout.activity_main) // 使用ViewBinding后的方法 val mBinding ActivityMainBinding.inflate(layoutInflater) setContentView(mBinding.root) // ActivityMainBinding类是根据布局自动生成的 如果没有请先build一下项目 // ViewBinding会将控件id转换为小驼峰命名法,所以为了保持一致规范,在xml里声明id时也请使用小驼峰命名法 // 比如你有一个id为mText的控件,可以这样使用 mBinding.mText.te​ xt “ViewBinding” 复制代码 Fragment 中 ViewBinding 的使用 // 原来的写法 return inflater.inflate(R.layout.fragment_blank, container, false) // 使用ViewBinding的写法 mBinding FragmentBlankBinding.inflate(inflater) return mBinding.root 复制代码 资料: 官方文档: developer.android.com/topic/libra… CSDN: blog.csdn.net/u010976213/… ARoute ARoute是阿里巴巴的一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦 使用方式: // 1.在需要进行路由跳转的Activity或Fragment上添加 Route 注解 Route(path “/test/activity”) public class YourActivity extend Activity { … } // 2.发起路由跳转 ARouter.getInstance() .build(“目标路由地址”) .navigation() // 3.携带参数跳转 ARouter.getInstance() .build(“目标路由地址”) .withLong(“key1”, 666L) .withString(“key3”, “888”) .withObject(“key4”, new Test(“Jack”, “Rose”)) .navigation() // 4.接收参数 Route(path RouteUrl.MainActivity2) class MainActivity : AppCompatActivity() { // 通过name来映射URL中的不同参数 Autowired(name “key”) lateinit var name: String override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(mBinding.root) // ARouter 依赖注入 ARouter会自动对字段进行赋值无需主动获取 ARouter.getInstance().inject(this) } } // 5.获取Fragment Fragment fragment (Fragment) ARouter.getInstance().build(“/test/fragment”).navigation(); 复制代码 资料: 官方文档:github.com/alibaba/ARo… 屏幕适配 AndroidAutoSize 屏幕适配使用的是 JessYan 大佬的 今日头条屏幕适配方案终极版 GitHub: github.com/JessYanCodi… 使用方式: // 在清单文件中声明 // 主单位使用dp 没设置副单位 // 默认是以竖屏的宽度为基准进行适配 // 如果是横屏项目要适配Pad(Pad适配尽量使用两套布局 因为手机和Pad屏幕宽比差距很大 无法完美适配) // 以高度为基准进行适配 (还需要手动代码设置以高度为基准进行适配) 目前以高度适配比宽度为基准适配 效果要好 // 在Application 中设置 // 屏幕适配 AndroidAutoSize 以横屏高度为基准进行适配 AutoSizeConfig.getInstance().isBaseOnWidth false 复制代码 EventBus APT 事件总线这里选择的还是EventBus,也有很多比较新的事件总线框架,还是选择了这个直接上手的 在框架内我对EventBus进行了基类封装,自动注册和解除注册,在需要注册的类上添加EventBusRegister注解即可,无需关心内存泄漏及没及时解除注册的情况,基类里已经做了处理 EventBusRegister class MainActivity : AppCompatActivity() { } 复制代码 很多使用EventBus的其实都没有发现APT的功能,这是EventBus3.0的重大更新,使用EventBus APT可以编译期生成订阅类,这样就可以避免使用低效率的反射,很多人不知道这个更新,用着3.0的版本,实际上却是2.0的效率 项目中已经在各模块中开启了EventBus APT,EventBus会在编译器对各模块生成订阅类,需要我们手动代码去集成这些订阅类 // 因为App包依赖了所有的模块所以选择在App包下的Application中进行设置 // 开启EventBus APT EventBus .builder() .addIndex(“各模块生成的订阅类的实例 类名在 moduleBase.gradle 脚本中进行了设置 比如 Lib_Main 生成的订阅类就是 MainEventIndex”) .installDefaultEventBus() 复制代码 PermissionX PermissionX 是郭霖的一个权限申请框架 使用方式: PermissionX.init(this) .permissions(“需要申请的权限”) .request { allGranted, grantedList, deniedList - } 复制代码 最后 小编这些年深知大多数初中级Android工程师想要提升自己往往是自己摸索成长自己不成体系的自学效果低效漫长且无助。 因此我收集整理了一份《2024年Android移动开发全套学习资料》初衷也很简单就是希望能够帮助到想自学提升又不知道该从何学起的朋友。 一个人可以走的很快但一群人才能走的更远不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人 都欢迎加入我们的的圈子技术交流、学习资源、职场吐槽、大厂内推、面试辅导让我们一起学习成长 资料⬅专栏获取 小编这些年深知大多数初中级Android工程师想要提升自己往往是自己摸索成长自己不成体系的自学效果低效漫长且无助。 因此我收集整理了一份《2024年Android移动开发全套学习资料》初衷也很简单就是希望能够帮助到想自学提升又不知道该从何学起的朋友。 [外链图片转存中…(img-takktOGA-1719099514376)]一个人可以走的很快但一群人才能走的更远不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人 都欢迎加入我们的的圈子技术交流、学习资源、职场吐槽、大厂内推、面试辅导让我们一起学习成长 资料⬅专栏获取
http://www.dnsts.com.cn/news/226770.html

相关文章:

  • 商洛市住户和城乡建设局网站信息价安徽seo人员
  • 北京装饰公司名称大全莱芜网站优化方案
  • 爱站网是干什么的网上怎么自己做网站
  • 网站建设与网页制作论文wordpress背景图案轮流
  • 免费的个人简历模板网站做标书有什么好的网站吗
  • 网站怎么做团购网站运营目的
  • 昆明 网站搭建苏州专业做网站比较好的公司
  • 网站后台框架模版宝安新闻
  • 四川建设发展股份有限公司网站网页制作与网站建设答案
  • 地方门户信息网站建设方案企业网站建立庆云县有几家
  • 设计网站公司php一般网站空间多大
  • 网站改版业务wordpress 标签调用
  • 上海网站建设公司站霸网络aso关键词优化计划
  • 做酒类网站做修图网站电脑配置
  • 软件下载网站模板建网站平台哪家好
  • 邯郸哪儿做网站便宜帝国cms是个人网站
  • dede网站如何换logo企业内部网站建设方案
  • 制作网站的完整步骤oppo软件商店下载官方
  • 手机视频做动画视频在线观看网站网站建设专业特长
  • 国内做医疗耗材的网站建站网站源码
  • 建设部网站上查不到资质的企业黄石公司做网站
  • 网站建设数据库模板企业网站开发数据库设计
  • 华强北 网站建设网页美工设计需要学什么
  • 微信推送用哪个网站做主题网站设计实验步骤
  • 沧州大型企业网站建设免费优化网站建设
  • 哪个网站可以做曝光台关于建设人才网站的竞争对手分析
  • 公司网站建设工作网站模板 响应式
  • 网站备案期间能使用吗山石网站超市
  • 怎么将网站设置为首页wordpress clef
  • 上海seo网站优化_搜索引擎排名_优化型企业网站建设_锦鱼网络wordpress 本地服务器