刘望舒 刘望舒
4年前
Android应用程序进程启动过程(后篇)
本文首发于微信公众号「后厂技术官」前言在前篇中我们讲到了Android应用程序进程启动过程,这一篇我们来讲遗留的知识点:在应用程序进程创建过程中会启动Binder线程池以及在应用程序进程启动后会创建消息循环。<more1.Binder线程池启动过程我们首先来看RuntimeInit类的zygoteInit
Stella981 Stella981
4年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
4年前
Android之基于百度云推送IM
偶然的一天,发现百度出了一个云推送包,想想百度的服务器还是比较靠谱的说,怎么着也比我们自己搭建的服务器要稳定,于是乎,我就花了几天时间,写了一个小小的聊天工具,权当是练手。主要思路是:客户端的聊天内容通过json格式封装(包含聊天内容、发送人信息)之后,HTTP请求百度服务器,即请求把该消息发送到指定id的用户,请求成功之后,百度服务器就把我们的信息转发给指
Stella981 Stella981
4年前
Android 中对Java对象深拷贝的方法
前言在项目中偶尔会遇到关于深拷贝的问题,比如点餐列表中的点一个饮料,它有多种规格(常温、冰),这样放到购物车列表中就可能出现2个相同id的饮料。如下图所示,其中我要对百事可乐进行拷贝一份,然后各修改它的属性值为常温/加冰。!(https://imgblog.csdnimg.cn/20200818150742575.jpg?
Stella981 Stella981
4年前
Android控件——ListView之Adapter提供数据(其二)
上一节中一些列表集合数据到手机屏幕时,通常采用ListView组件ArrayAdapter.虽然它能为我们提供展示数据列表的能力,但是展示的项却不能定制,如果我们的项是由2个TextView组成的,它就无能为力了。项目中大部分的不单单是展示简单的项模板,更多时候,我们可以对项模板进行一些定制,来满足我们的需求,假设项模板需要展示2个TextView
Stella981 Stella981
4年前
Android Drawable完全解析(一):Drawable源码分析(中)
AndroidDrawable完全解析(一):Drawable源码分析(上)(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.jianshu.com%2Fp%2F384a70897ba6)AndroidDrawable完全解析(一):Drawable源码分析(中)(htt
Stella981 Stella981
4年前
Android模块化初体验及教程(二)
上一章初级体验了一下模块化,但是还是有很多需要优化和改进的地方思考点:怎么单独运行某一个子模块,不影响到其他模块之间的依赖?子模块需要Application,难道要每个模块写一个?因为是同一个服务器,所以网络请求库,怎么跨模块间公用?模块间怎么通信?解决将项