<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_69439527的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_69439527</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_69439527]]></copyright><item><title><![CDATA[3D模型 在Android Studio 中的应用]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124247251</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124247251</guid><author>m0_69439527</author><pubDate>Mon, 18 Apr 2022 13:16:47 +0800</pubDate><description><![CDATA[[](()2.1 请求权限
在清单文件中，我们需要为应用获取互联网权限以便通过URL加载3D模型；并获取相机许可来打开3D模型。



同时这里我们要用Google Play的AR服务来帮助我们使用3D模型

[](()2.2 构建配置
添加UX库和assets库以动态添加3D模型
implementati Android开源项目《ali1024.coding.net/public/P7/Android/git》 on ‘com.google.ar.sceneform.ux:sceneform-ux:1..]]></description><category></category></item><item><title><![CDATA[35岁难找工作，40岁没人要：年长的程序员都去哪里了]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124247222</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124247222</guid><author>m0_69439527</author><pubDate>Mon, 18 Apr 2022 13:14:35 +0800</pubDate><description><![CDATA[**360°全方面性能调优：**设计思想与代码质量优化+程序性能优化+开发效率优化


**解读开源框架设计思想：**热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack



《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 *NDK模块开发：**NDK基础知识体系+底层图片处理+音视频开发



**微信小程序：**小程序介绍+UI开发+API操作+微信..]]></description><category></category></item><item><title><![CDATA[Android组件内核之间组件间通信方案（四）下篇]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124227965</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124227965</guid><author>m0_69439527</author><pubDate>Sun, 17 Apr 2022 12:46:56 +0800</pubDate><description><![CDATA[interface EditProfileContract {
interface view {
fun setProgress(show: Boolean)
fun showEmptyFirstNameError()
fun showEmptyLastNameError( Android开源项目《ali1024.coding.net/public/P7/Android/git》 )
}
interface presenter {
fun saveProfile(firstName: String, las]]></description><category></category></item><item><title><![CDATA[Android第三方开发包值高德地图SDK使用介绍]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124227948</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124227948</guid><author>m0_69439527</author><pubDate>Sun, 17 Apr 2022 12:44:27 +0800</pubDate><description><![CDATA[（1）配置Project的build.gradle：添加jcenter的仓库地址
文件位置：

代码：
allprojects {
repositories {
jcenter() // 或者 mavenCentral()
}
}
（2）配置主工程文件的build.gradle文件
文件位置：

代码：
android {
defaultConfig {
ndk {
//设置支持的SO库架构（开发者可以根据需要，选择一个或多个平台的so）
abiFilters “armeabi”, “armeabi-v7a]]></description><category></category></item><item><title><![CDATA[Android开发之图片压缩处理]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124227928</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124227928</guid><author>m0_69439527</author><pubDate>Sun, 17 Apr 2022 12:42:32 +0800</pubDate><description><![CDATA[这个就是我们平时写自定义view的时候，要写回调方法，是一样的道理，他这里就是压缩方法的回调
[](()第五步：*launch()*
点击去看到源码为
/**

begin compress image with asynchronous

*/
public void launch() {
build().launch(context);
}
这里，我们看到他先调用了build(),我们前面讲了，他这个方法就是赋值，然后调用了launch(context)方法，我们点进去看：
/**

start asy]]></description><category></category></item><item><title><![CDATA[Android修炼系列（八）]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124227892</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124227892</guid><author>m0_69439527</author><pubDate>Sun, 17 Apr 2022 12:39:25 +0800</pubDate><description><![CDATA[@param isTest 添加参数描述，不需要刻意与其他param

          参数对齐



*/
public void test(boolean isTest){}
@link 常见形式见下: 
@code 用来标记一小段等宽字体，也可以用来标记某个类或方法，但不会生成超链接。常与@link配合，首次通过@link生成超链接，之后通过@code 呈现等宽字体。
/**

第一句话是这个方法的简短摘要。
我们可以关联{@link Test}类，随后通过{@code Test}类怎样怎样
也.]]></description><category></category></item><item><title><![CDATA[Android事件分发机制源码解析]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124227872</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124227872</guid><author>m0_69439527</author><pubDate>Sun, 17 Apr 2022 12:37:47 +0800</pubDate><description><![CDATA[}
private TouchTarget addTouchTarget(View child, int pointerIdBits) {
TouchTarget target = TouchTarget.obtain(child, pointerIdBits);
target.next = mFirstTouchTarget;
mFirstTouchTarget = target;
return target;
}
private boolean dispatchTransformedTouchEvent]]></description><category></category></item><item><title><![CDATA[Android-APK瘦身实践：二次瘦身如何再减少大小？]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198899</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198899</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:56:46 +0800</pubDate><description><![CDATA[[更多下载](()
最终，apk减小了188k。
4. 大图缩小
如果经过上面的步骤，依然存在大图的话，说明确实图有点大了，可能真的有点大了！
所以，要考虑的问题是，是否有必要保证如此的大小？能否缩小？如果这方面能减小的话，apk瘦身的效果必然又会上一个档次。
5. 覆盖aar里的一些默认的大图
一些aar库里面包含根本就没有用的图。最典型的是support-v4兼容库中包含一些“可能”用到的图片，实际上在你的app中不会用到。

我没有把所有图都替换掉，只是把几张大一点点的图（选中的那些图）用1×1的图片]]></description><category></category></item><item><title><![CDATA[Android---使用-ContentProvider-无侵入获取-Context]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198852</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198852</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:55:15 +0800</pubDate><description><![CDATA[Application mInitialApplication;
public Application getApplication() {
return mInitialApplication;
}
private void handle 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 BindApplication(AppBindData data) {
// …
Application app;
// data.info 为 LoadedApk.java
ap]]></description><category></category></item><item><title><![CDATA[Android 项目总结(一)：弧形ViewPager 和弧形HeaderView]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198794</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198794</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:53:28 +0800</pubDate><description><![CDATA[public class ArcHeaderView extends View {
private Paint mPaint;
private PointF mStartPoint, mEndPoint, mControlPoint;
private int mWidth;
private int mHeight;
private Path mPath = new Path();
private int mArcHeight = 100;// 圆弧高度
private int mStartColor;
pr]]></description><category></category></item><item><title><![CDATA[Android 计时器Chronometer 使用及源码分析]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198740</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198740</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:51:46 +0800</pubDate><description><![CDATA[//开始计时
chronometer.start();
break;
case&nbsp;R.id.btn_stop:
//结束计时
chronometer.stop();
//文字显示
ch_format.setText(“00:00”);
break;
case&nbsp;R.id.btn_reset:
//重置基准时间
chronometer.setBase(SystemClock.elapsedRealtime());
break;
case&nbsp;R.id.btn_format_1:
ch_f]]></description><category></category></item><item><title><![CDATA[Android 架构分享— 那些年我们犯过的错]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198653</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198653</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:49:27 +0800</pubDate><description><![CDATA[我的意思是，你可以以这样一种方式组织你的代码，那个和交互设计师对接的程序员只需要打理和交互相关的代码。因此，所有交互被分离到那些负责交互的 classes / modules / components / whatever （组件）中，当处理 app 的交互部分时，只需要打理那些组件。

译者注：如果暂时不能理解利益相关者，没关系的，看完本系列第三部分你就明白了

II.支持关注点分离
我刚刚所说的就是一个关注点分离的例子。我们支持这种特定的方法，因为它能很好地表达团队组织和项目阶段的配合，一般来说，你的架]]></description><category></category></item><item><title><![CDATA[Android 架构之长连接技术]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198592</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198592</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:47:42 +0800</pubDate><description><![CDATA[上文中我们提到了HttpDNS，虽然它比系统DNS更优，但终归还是要做DNS操作。而长连接都是IP直接连接，因此没有DNS相关的开销和耗时。
3. 如果有大量网络请求，可以明显减少网络延时，节省带宽
对于大型App而言，存在繁多密集的网络请求，这中间就会存在非常多次的Http断开和重新连接，浪费了很多时间和带宽。而通过长连接通道的话，则没有这部分耗时，直接传输二进制数据即可，节省了每次连接里Header之类的带宽开销。
4. 服务端主动Push数据到客户端
对于上面提到的微信消息接收等场景，如果需要客户端主]]></description><category></category></item><item><title><![CDATA[android 快速开发（一）抽象类的使用]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198532</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198532</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:45:45 +0800</pubDate><description><![CDATA[abstract [修饰符](() 可以用于类、方法、属性、事件和索引指示器（indexer），表示其为抽象成员，抽象方法是没有方法体的方法。
abstract 不可以和[static](()、virtual、[final](()、native一起使用
声明为 abstract 成员可以不包括实现代码，但只要类中还有未实现的抽象成员（抽象方法），那么这个类就是一个[抽象类](()，抽象类的对象就不能被实例化，通常用于强制继承类必须实现某一成员.抽象类是必须要派生子类的。并且，如果子类没有实现抽象基类的所有方]]></description><category></category></item><item><title><![CDATA[Android 开发艺术探索笔记（16）]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198440</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198440</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:43:24 +0800</pubDate><description><![CDATA[有些动画会无限循环，所以要在Activity退出时及时停止。


兼容性问题


View动画问题


View动画是对动画做影像动画，并没真正改变View的状态


不要使用px


动画元素的交互


属性动画的单击事件触发在移动后的位置，View则在之前的位置。

硬件加速

使用动画的过程中尽量使用硬件加速，能保证动画的平滑和流畅性。
理解Window和WindowManager

Window是一个窗口，Window的具体实现位于WindowManagerService中，WindowManage]]></description><category></category></item><item><title><![CDATA[Android 开发小总结]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124198361</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124198361</guid><author>m0_69439527</author><pubDate>Fri, 15 Apr 2022 16:41:08 +0800</pubDate><description><![CDATA[3、目录为 /storage/emulated/0/Android/data/packagename/files

getExternalFilesDir(null)

4、内部存储(手机内部存储)


目录为 /data

getDataDir()

5、应用缓存目录 /data/data/packagename/cache

getCacheDir()

6、应用文件目录 /data/data/packagename/files

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目.]]></description><category></category></item><item><title><![CDATA[Android进阶：手把手教你实现高仿微信底部导航栏动画]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124181715</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124181715</guid><author>m0_69439527</author><pubDate>Thu, 14 Apr 2022 21:03:05 +0800</pubDate><description><![CDATA[super(context, attrs);
// 加载布局
inflate(context, R.layout.tab_layout, this);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TabView);
for (int i = 0; i &lt; a.getIndexCount(); i++) {
int attr = a.getIndex(i);
switch (attr) {
case R.styleab]]></description><category></category></item><item><title><![CDATA[Android还有必要深耕吗？现在的前景是怎样的？]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124181680</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124181680</guid><author>m0_69439527</author><pubDate>Thu, 14 Apr 2022 21:01:34 +0800</pubDate><description><![CDATA[贴近实战之问题优化


编程优化



[](()高级音视频


C/C++基础


交叉编译


NDK进阶面试


增量更新与Gif渲染


H264视频编码


MediaCodec


视频编辑之剪影实战


FFmpeg万能播放器


直播推流


图形渲染与识别


Webrtc音视频



[](()架构师必备


架构筑基技能


手淘组架构设计


开源架构手写实现


一线大厂架构核心进阶


  Android开源项目：ali1024.coding.net/public/P7/An..]]></description><category></category></item><item><title><![CDATA[Android性能优化 _ 大图做帧动画卡？优化帧动画之 SurfaceView滑动窗口式帧复用]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124181546</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124181546</guid><author>m0_69439527</author><pubDate>Thu, 14 Apr 2022 20:56:55 +0800</pubDate><description><![CDATA[private   Android开源项目：ali1024.coding.net/public/P7/Android/git  void startDrawThread() {
handlerThread = new HandlerThread(“SurfaceViewThread”);
handlerThread.start();
handler = new Handler(handlerThread.getLooper());
handler.post(new DrawRunnable());
}
pr]]></description><category></category></item><item><title><![CDATA[Android开源的精美日历控件，热插拔设计的万能自定义UI]]></title><link>https://blog.youkuaiyun.com/m0_69439527/article/details/124181508</link><guid>https://blog.youkuaiyun.com/m0_69439527/article/details/124181508</guid><author>m0_69439527</author><pubDate>Thu, 14 Apr 2022 20:55:25 +0800</pubDate><description><![CDATA[&lt;attr name=“selected_text_color” forma  《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源  t=“color” /&gt; 
 
 
 
 
 
  
 

XML用法
如果需要在日历控件下方使用其它控件，使用CalendarLayout控件即可，calendar_co  Android开源项目：ali1024.coding.net/public/P7/Android/git  ntent_...]]></description><category></category></item></channel></rss>