从基础到中级在高级,从Android到java,记录下来有需要的时候多复习复习,也希望能帮到有需要的你。 Android部分 1、Activity生命周期? 2、Service生命周期?...21、Fragment与Fragment、Activity通信的方式 22、Android UI适配 23、app优化 24、图片优化 25、HybridApp WebView和JS交互 26、JAVA...当应用创建的时候,就会在主线程中创建handler对象 我们通过要传送的消息保存到Message中,handler通过调用sendMessage方法将Message发送到MessageQueue中,Looper...NDK 在ndk项目中JNI接口的设计 使用C/C++实现本地方法 JNI生成动态链接库.so文件 将动态链接库复制到java工程,在java工程中调用,运行java工程即可 33、RecyclerView...现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发 送了确认应答分组。
每个android dalvik应用程序都被赋予了一个独立的linux PID(app_*)) 7、进程保活(不死进程) 此处延伸:进程的优先级是什么 当前业界的Android进程保活手段主要分为**...当应用创建的时候,就会在主线程中创建handler对象, 我们通过要传送的消息保存到Message中,handler通过调用sendMessage方法将Message发送到MessageQueue中,Looper...19、热修复的原理 我们知道Java虚拟机 —— JVM 是加载类的class文件的,而Android虚拟机——Dalvik/ART VM 是加载类的dex文件, 而他们加载类的时候都需要ClassLoader...图片的Size:可以在获取图片时告知服务器需要的图片的宽高, 以便服务器给出合适的图片, 避免浪费....(4)JNI生成动态链接库.so文件 (5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可 31、RecyclerView和ListView的区别 RecyclerView
“我”的界面 首先是资源图片,“我”的界面要用到的图片有myinfo_login_bg、course_history_icon、iv_right_arrow、myinfo_setting_icon 老样子...连续点击返回两次则退出,两次点击间隔超过2秒则提示再按一次退出。...android:text="保 存"/> 生成activity文件,ModifyPswActivity.java 注意:在submit方法中,密码修改成功之后除了把当前页面关了...设置密保和找回密码页面需要用到的图片资源为 find_psw_icon.png 新建布局文件,名为activity_find_psw。...--找回密码需要设置标题栏--> <TextView android:id="@+
在Utils包中新建一个Java类,名为AnalysisUtils。...,两次点击间隔超过2秒则提示再按一次退出。...// 连续点击返回两次则退出,两次点击间隔超过2秒则提示再按一次退出。...", Toast.LENGTH_SHORT).show(); //保存到 saveSecurity(validateName);...❤️ 总结 本文讲了AndroidStudio制作“我”的界面,设置,修改密码,设置密保和找回密码,界面的布局介绍,如果您还有更好地理解,欢迎沟通 定位:分享 Android&Java知识点,有兴趣可以继续关注
综上所述:链路保活涉及到消息链路和推送链路两条链路的保活策略。基于这两条链路使用场景的不同,保活策略上除了心跳机制是相同的,其它保活策略各有不同。下面将逐一解读。...这方面更详细的技术文章,请见:《为何基于TCP协议的移动端IM仍然需要心跳保活机制?》...、《微信团队原创分享:Android版微信后台保活实战分享(网络保活篇)》 5、通用保活机制-心跳机制 基于以上原因,要维持 Socket 连接长时间存活,就需要实现自己的保活机制。...一种是通过 Java 里的 Timer 来实现。...Android后台保活方案的真实运行效果(截止2019年前)》 6、消息链路保活机制 消息链路作为收发消息的主要通道,需要最大程度保障链路的可用性。
Android 8.0 进一步加强了应用后台执行限制:一旦应用进入已缓存状态时,如果没有活动的组件,系统将解除应用具有的所有唤醒锁。...灰色保活 开启前台Service,开启另一个Service将通知栏移除,其oom_adj值还是没变的,这样用户就察觉不到app在后台保活。...2)、开启前台Service 这个其实跟(1)是相同的,区别在于这个方式将常驻通知栏移除了 DaemonService.java @Override public void onCreate() {...---- 小编整理了一份Android电子书籍,需要的童鞋关注公众号回复:"e_books" 即可获取哦!...[在这里插入图片描述] 欢迎关注公众号(longxuanzhigu),获得更多福利、精彩内容哦!
, 下面是常见的攻击方式 : 恶意应用程序 : 恶意应用程序 可能会 请求截屏权限 并将截屏的内容上传到远程服务器 , 尤其是账号密码输入界面的截屏 ; 操作系统漏洞利用 : 利用操作系统中的 漏洞...; 电源键 + 音量减小键 : Android 设备上触发截屏的组合键 , 系统会触发截屏操作 , 并将当前屏幕内容保存为图片文件 ; 手势操作: 滑动手势 : 在特定的 Android 设备上 ,...截屏代码 在 Android 应用程序中 , 通过代码进行截屏 , 需要如下几个步骤 : 首先 , 获取 Activity 的 根 View 视图 ; View rootView = activity.getWindow...; import android.graphics.Bitmap; import android.os.Environment; import android.view.View; import java.io.File...; import java.io.FileOutputStream; import java.io.IOException; public class ScreenshotUtils { /
将 函数名称 改成你喜欢的。将 地域 改为你目前所在地。...将 运行环境 改为 NodeJs 的最高版本(目前是 NodeJs 16.13 ) 然后点击 本地上传zip包 将执行方法改为 index.main 再在下面将函数代码上传。...# 设置云函数 设置好云函数后,我们还需要将账号密码、api 链接搞好。...进入 函数代码 部分,等待一小会,会看到这样一幅画面: 打开 /src/config/api 将里面的所有内容替换为 https://music163-api-seven.vercel.app/...一天会签到两次、刷完所有的歌、分别登录 Web/PC 和 Android 端,保你成为云村最亮的仔! 教程
作者博客 http://www.jianshu.com/u/abc8086489c7 文章目录 前言 系列目录 Android应用内执行shell 双进程保活aidl版 (android5.0以下) 双进程保活...2 系列目录 那些年Android黑科技①:只要活着,就有希望 android应用内执行shell 双进程保活aidl版 双进程保活jni版 保活JobService版 那些年Android黑科技②...) 无网络权限偷偷上传数据 3 Android应用内执行shell android系统本身是Linux作为内核,我们一般开发中使用 adb shell 命令来操作。...所以我们要做的是通过java去fork一段C的代码。通过动态链接库封装起来。然后在C代码里不断轮训父进程的ppid是否存活。如果挂掉了侧重新唤醒。 1.配置服务进程。...需要注意的是一定要指定被触发的条件。比如:设备充电中、空闲状态、连接wifi... 非常类似以前的广播保护原理。但是实现不一样。这次是我们反向注册给系统,而不是接收系统的广播。
1、关于学习本书之前是否需要Java基础 问题:看安卓开发教程书需要很扎实的java基础吗?...,参见本书第10章的“10.3.3 文件上传”; Socket,参见本书第10章的“10.4.2 Socket通信”; 线程池,参见本书第16章的“16.3 线程池管理”; 2、学习本书之前是否需要了解...回答:本书源码已经在补充全面注释了,补充注释了的部分章节已经上传到github,有需要的朋友可在github下载最新的全面注释源码。...4、关于第2章的跑马灯文字滚动逻辑 问题:为什么跑马灯不是点一次停,再点一次动;而是点一次停,需要点两次才动?...9、关于第10章的socket服务端代码的启动方式 问题:Socket服务器端我将TestServer运行到Tomcat上面,这个没运行成功还需要什么配置吗?
2.对于某些设备,比如做Kindle开发,可以设置崩溃重启app操作 3.暴露了用户上传自己捕获的crash数据,以及崩溃重启的接口监听操作 4.一个崩溃日志保存到一个文件中,文件命名规则【版本+日期+...截图---> 创建截图存储文件路径---> 保存图片【图片质量,缩放比还有采样率压缩】 final Bitmap bitmap = ScreenShotsUtils.measureSize(this,view...例如运行时间、是否加载了补丁、是否是全新安装或升级等) 07.异常栈轨迹原理 Android发生异常为何崩溃 一旦线程出现抛出异常,并且我们没有捕捉的情况下,JVM将调用Thread中的dispatchUncaughtException...关于上传日志介绍 设置该异常初始化后,在进入全局异常时系统就提示尽快收集信息,进程将被结束,因此不可以在此时做网络上传崩溃信息。可以在此时将错误日志写入到file文件或者sp中。...比如:通过SharedPreferences将错误日志的路径写入配置文件中,在启动的时候先检测该配置文件是否有错误日志信息,如果有则读取文件,然后实现日志上传。
, 本篇博客中进行后续加固 ; 一、 购买加固服务 ---- 如果要使用 360 加固保的高级加固设置 , 需要购买高级防逆向服务 , 1400 ~ 48000 不太便宜 ; 360 加固保购买链接...Assets 下的所有资源都进行加密 ; 资源加固需要手动输入不加固的资源路径 , 如视频 , 图片 , 公共资源等不需要保密的资源 ; 选中 " 资源文件保护 " , 会弹出如下对话框 , 在该对话框中输入不需要加密的目录或文件...安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx ) 博客进行反编译验证 ; 将反编译工具包 ,..._2.4.1 " 目录中 , 执行如下命令 , java -jar apktool_2.4.1.jar d app-debug-signed_01_jiagu_sign.apk -o demo 执行完毕后...C:\Users\octop>D: D:\>cd D:\jiagu\反编译\001_apktool_2.4.1 D:\jiagu\反编译\001_apktool_2.4.1>java -jar apktool
多进程在Android中常见的使用场景有独立进程的WebView、推送、保活、系统服务等,既然是多进程场景,那么就需要跨进程通信了。...(图片来源:「写给Android应用工程师的Binder原理剖析」) Binder整体基于C/S架构。...延伸:从 IT互联网大叔 的「android获取进程名函数,如何优化到极致」一文可见,在使用系统API时,如果有更好的方案,还是建议将跨进程方案getSystemService放到最后作为兜底,因为他需要的...传统IPC传输数据:发送进程需要copy_from_user从用户到内核,接收进程再copy_to_uer从内核到用户,两次拷贝。...(图片来源:「写给Android应用工程师的Binder原理剖析」) Binder为什么不用shm shm通常需要结合其他跨进程方式如信号量来同步信息,使用没有mmap方便。
最近在公司主导开发Android中间件,我对中间件的定义是:多个应用都会用到且相对独立的功能,但不涉及UI的部分,比如: 文件下载库 文件上传库 行为采集库 更新库 推送库 即时通讯库 账号库...关于开源库的选型可以看下这几个链接,但在项目中具体用哪一个还得根据自身业务情况来定: Android开源项目推荐之「网络请求哪家强」 Android开源项目推荐之「图片加载到底哪家强」 国内Top500Android...2 文件上传库 开始、暂停、删除、增加、查询上载任务; 支持断点续传; 支持多线程(分块)上传; 出于性能考虑需要考虑限制文件的大小; 网络切换时的处理。...3 行为采集库 1、支持整机和单个应用的用户操作事件的采集并上传; 2、支持整机和单个应用的异常信息采集并上传; 3、支持多种采集模式:定时、推送、定量、充电时上传等上传模式; 4、采集的缓存策略,需要考虑两级缓存...5 推送库 1、支持多种推送策略:全量推送、指定用户推送、定时推送等; 2、需要考虑到多个应用同时集成推送功能时的功耗问题; 3、推送服务如何保活。
,第一次上传第一张图片的时候,上传成功,也保存到服务器文件夹里,也保存到了数据库 图片字段中,但是由于1<3, 后台就知道图片还没有上传完,所以反正状态码1,告诉Android客户端,你还没有上传完,...Android客户端得到这个返回码,handler传递处理判断之后,知道我已经上传成功 并且我还需要继续上传,不过这个时候我们需要多加一个判断,就是前面传回给服务器当前上传的第几张图片数量+1是否超过存储图片...以可写的方式打开文件*/ //接下来就是需要把图片保存到文件夹里面,用到的是fwrite函数 if(fwrite($m,$file_name)){ /*说明保存成功,执行了将64位编码的文件写入到$m...指针中*/ fclose($m);//必须关闭 //如果保存文件夹里成功了,还是别忘记了还需要存储到数据库的相应的字段中啊,在数据库图片字段中存储的是图片名,多张图片用 ,号隔开 /*将图片名插入到数据库中..., 所以上面的判断语句就是这个意思: 1.如果当前上传的图片是第一张,并且用户只会上传一张图片的时候 2.如果当前上传的图片是第一张,并且用户不只上传一张图片的时候,我们是需要在第一张图片的时候给他加上逗号的
下面我分享个自己刚写好的图片批量上传类,顺带server端接口代码,已经过测试,一套直接可用。...2,本类特点 1、耦合度低,操作简单、使用时仅 6 行代码即可直接 批量上传完图片; 2、使用的是软化线程池对象,内存消耗这方面可以放心地交给系统处理; 3、采用链式操作,配置方便; 4...4,client端java类 注释已经很丰富,不懂请留言 1 package cn.share.bananacloud.post.send; 2 3 import android.graphics.Bitmap...; 4 import android.os.Handler; 5 import android.util.Log; 6 7 import java.io.BufferedReader;.../** 21 * Created by 林冠宏 on 2016/4/30. 22 * 23 * 1,线程池批量上传图片类,选用 newFixedThreadPool 24 * 2,
金九银十,需要跳槽的快快复习和准备吧!...讲一讲优势 12.进程保活 做过进程保活吗? 5.0下和5.0上的保活方式了解吗?...动态布局的理解 画出 Android 的大体架构图 Recycleview和ListView的区别 ListView图片加载错乱的原理和解决方案 动态权限适配方案,权限组的概念 Android系统为什么会设计...关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的) 知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结...: 最后我在这里分享一下这段时间从朋友,大佬那里收集到的一些2019-2020BAT 面试真题解析,里面内容很多也很系统,包含了很多内容:Android 基础、Java 基础、Android 源码相关分析
2.3之前默认采用并行执行任务,AsyncTask在Android 2.3之后默认采用串行执行任务 如果需要在Android 2.3之后采用并行执行任务,可以调用AsyncTask的executeOnExecutor...3、ListView的优化 重用convertView 使用ViewHolder 图片三级缓存 监听滑动事件 少用透明View 开启硬件加速 12 Android项目构建面试题 1、android构建流程...EntryPoint中,将非EntryPoint的字段和方法进行替换 8、为什么要混淆 由于Java是一门跨平台的解释性语言,其源代码被编译成class字节码来适应其他平台,而class文件包含了Java...缩略图 图片压缩 避免ANR 不要在UI线程中做耗时操作 17 内存泄漏面试题 1、Java内存泄漏引起的主要原因 长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄漏 2、Java...:判别进程的优先级 3、Android保活方案 利用系统广播拉活 利用系统Service机制拉活 利用Native进程拉活 利用JobScheduler机制拉活 利用账号同步机制拉活 25 Lint面试题
那如果需要访问其他目录怎么办呢,比如获取相册中的图片,向相册中添加一张图片。...为此,Android 系统针对系统文件类型进行了分类**:图片,音频,视频 这三类文件可以通过 MediaStore API 来进行访问,这种称为共享空间,其他的系统文件需要使用 系统的文件选择器来进行访问...拍照完成后,拿到对应的 uri 如果要直接显示图片,则通过 uri 可直接加载 如果图片要上传,则需要将 uri 处理为一个 file 对象 在 10.0 中,只能访问沙箱文件和共享文件夹...所以在图片上传的时候,需要通过 contentProider 将 uri 转为一个 inputStream,然后将数据读取出来,并且保存在沙箱文件中,然后在获取沙箱文件中的 file 即可。 ...需要注意的 只能在沙箱中操作 file 对象,切记。 在对 图片进行复制和压缩上传的时候,需要注意耗时,如果太耗时,需要放在子线程中。
标记位置 含义 左-黑线 纵向拉伸区域 上-黑线 横向拉伸区域 右-黑线 纵向显示区域 下-黑线 横向显示区域 1.2 Android是如何加载点九图的 当我们将点九图放在res目录下,Android...知道错误的原因后,我们可以做如下几种方式处理: 让产品或者设计师先进行转换后(转换工具由开发提供)再上传到服务器,这时客户端再从服务端拉取到的就是编译处理后的点九图了 将原始点九图上传到一个转换平台,平台进行转换后再上传到服务器...使用上述方案的注意事项: 步骤2画黑线必须是纯黑色像素,且图片的四个角必须为透明像素点,否则Android无法识别,且在步骤3中将无法转换 步骤3中,可以使用Android SDK自带工具aapt进行转换...\output表示目标目录 步骤4中,上传过程中不能对转换后的图进行压缩,因为转换后的点九图的黑线信息被保存到了png图片的辅助数据快中,这部分数据在压缩的过程中会消失,导致最终客户端拉取到的图片不是点九图...步骤8中,需要通过Bitmap创建drawable,如果是使用res目录下的,Android系统会自动完成,如果是获取网络图片则需要自己手动创建,如下: ?