自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Android性能优化系列之apk瘦身

把SplashActivity改成SplashFragment,应用程序的入口仍然是MainActivity,在MainActivity中先展示SplashFragment,当SplashFragment显示完毕后再将它remove,同时在SplashFragment的2S的友好时间内进行网络数据缓存,在窗口加载完毕后,我们加载activity_main的布局,考虑到这个布局有可能比较复杂,耽误View的解析时间,采用ViewStub的形式进行懒加载。Parents:调用该方法的父类方法。

2024-05-24 03:23:32 261

原创 Android应用程序混淆

并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件。查看SDK2.3的文档,在路径“/docs/guide/developing/tools/proguard.html”的“这儿又得提醒一下,SDK新的特性在文档里都是有的,所以文档很重要。

2024-05-24 03:07:19 254

原创 Android应用安全常见问题及解决方案

URl绕过问题也只能说是攻击面,不能说是漏洞。在使用webview的时候,大多数开发者并不希望组件任何网页都加载,因此会实现一个白名单函数约束加载的网页,常见的约束函数有contains()、indexOf()、endwith()、getHost()等,由于约束机制都是人为实现的,因此会带来不安全的因素。另一个问题是url白名单绕过,随着联网应用的增多,大家都喜欢用webviwe组件去加载一个网页,那就需要加载url,而webviwe组件本身问题就非常的多,它权限中有很多敏感的行为,比如获取地理位置信息。

2024-05-24 03:06:19 306

原创 Android使用Activity用作弹出式对话框

2、对对话框内控件的事件的处理,都独立出来在一个类中,调用的地方仅需要startActivity()就可以,这样可以使代码结构上更加清晰。2、在style.xml中定义一个theme(背景透明,无标题,动画效果),一般Activity默认动画效果右进右出,我们可以覆盖。1、显示位置的设置,直接就是一个layout.xml随心所遇的感觉,可以实现在任何位置。android:text=“登录网页版”android:text=“发起聊天”android:text=“听筒模式”android:text=“扫一扫”

2024-05-24 02:49:48 314

原创 Android事件分发机制及设计思路,面试建议

找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。多练。(视频优势是互动感强,容易集中注意力)你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。以上就是总结的关于在面试的一些总结,希望对大家能有些帮助,除了这些面试中需要注意的问题,当然最重要的就是刷题了,这里放上我之前整理的一份超全的面试专题PDF,大家有兴趣的可以自行领取或者私信我:还有。

2024-05-24 02:48:50 262

原创 Android-Async-Http(1)—上传文件

client.post(this, “路径”,params,new AsyncHttpResponseHandler(){// 设置文件,参数(名称,文件,类型)//上传文件,路径指上传到的地方。

2024-05-24 02:28:08 362

原创 Android---沉浸式状态栏

沉浸式状态栏,既可以把颜色实现沉浸,又可以把图片实现沉浸。

2024-05-24 02:27:09 314

原创 Android 天气APP(三十五)修复BUG、升级网络请求框架

问题出现的原因就是讯飞语音识别是弹窗的调用,context重复使用,导致当第一个页面调用了语音识别之后,第二个页面调用时引用的context还是之前的,但是之前的页面销毁了,则弹窗找不到显示的页面,页面崩溃报错。在之前的网络请求中,每一次请求都会执行两次,这个问题由一个读者发现,和我反应出来,我更换了网络框架,其实就是在原来的基础上增加了RxJava的使用,新的网络框架在源码中的mvplibrary模块的newnet包下。在我修改网络框架之前,我特意保存了一个之前的未修改网络框架的源码。

2024-05-24 02:11:04 302

原创 Android 初识AIDL

这里的 new IMyaidl.Stub()函数的返回类型是Ibinder,它先实现IMyaidl里面的接口功能,然后向上转型为Ibinder类型,同时通过onBind()传出。这样做是为了当客户端的activity要去用这个服务端的这个功能时,客户端先要绑定这个service,这时候客户端就能得到这个IBinder了。这里的 asInterface(service) 就是将绑定之后(现在还没有绑定服务,等下通过bindservice()绑定服务得到了ibinder)将Ibinder转化为aidl类。

2024-05-24 02:10:05 221

原创 Android Studio 实现登录注册-源代码 二(Servlet + 连接MySql数据库)

package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import entity.User;public class UserDao {public boolean login(String name,String password){String sql = “select * from users whe

2024-05-24 01:52:55 276

原创 Android Studio 中 R

2、创建项目之后,找到工具栏中的。

2024-05-24 01:51:56 408

原创 Android Binder 原理

2,自定义服务所在进程开启后,暴露出IBinder。3,发送方进程通过系统调用 copy_from_user() 将数据 copy 到内核缓存区,由于内核缓存区和接收进程的地址空间存在内存映射,因此也就相当于把数据发送到了接收进程的用户空间,这样便完成了一次进程间的通信。1,系统服务会往ServiceManager注册,ServiceManager运行在单独的进程里,客户端进程需要先向ServiceManager里请求IBinder,再使用IBinder获取关联接口进而使用系统服务。

2024-05-24 01:35:26 375

原创 Android 9(1)

Android 9.0 上部分域名时使用 http当然不止这些配置,还有抓包配置、设置自定义CA以及各种场景下灵活的配置,详细的方法可以查看。

2024-05-24 01:34:27 232

原创 2024火爆来袭!阿里P8大牛斥百万巨资录制Android高级工程师进阶系列视频-教你打造一个Android组件化开发框架!

CC:Component Caller,一个android组件化开发框架, 已开源,github 地址:本文主要讲解框架实现原理,如果只是想了解一下如何使用,可直接到 github上查看README文档首先说明一下,本文将讲述的组件化与业内的插件化(如:Atlas, RePlugin等)不是同一个概念。

2024-05-24 01:14:47 282

原创 2024新鲜面经,蚂蚁内部转岗Android面试分享

里面都是我这几年来聚集的一帮Android开发程序员,欢迎大家加入,同时相应的面试资料资料也可以找群主领取的。软实力 平时要有意识的去培养,不要以为软实力没什么用,这是确定我们长跑的耐久能力的重要因素。硬实力 技术问题一定要去复习深挖,把问题搞透了,在面试的时候才有十足的把握。考核做过的项目的了解,包括项目监控数据,行业的了解,对标产品了解。自我驱动及抗压能力,遇到的最困难的事怎么去处理。最后,祝大家在新的一年里,事事顺利,共同进步!对目标项目的了解程度,并向我介绍。对目标项目及行业的了解及看法。

2024-05-24 01:13:48 255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除