android
文章平均质量分 95
沈万三djh
这个作者很懒,什么都没留下…
展开
-
Android其他4-art相关的学习
Android art的学习一、代码分析1.1.Java环境启动过程1.1.1.从zygote开始1.1.2.JniInvocation 里面的初始化过程1.1.3.JavaVM 和 JNIEnv 的初始化-就是java环境的建立1.1.4.JNI_CreateJavaVM 对运行时 oat文件的加载1.1.5.JNI_CreateJavaVM 对运行时 classlinker的建立classlinker的建立1.2.java运行时环境的建立1.2.1.从Runtime.start开始1.2.2.jit的建原创 2021-10-25 16:00:57 · 1076 阅读 · 0 评论 -
Android其他4-Android优化
Android优化1-检测工具TraceView的使用1、启动TraceView2、标记进程3、分析SysTrace的使用1、打开2、操作3、分析5、快捷键AMS命令TraceView的使用工欲善其事必先利其器,TraceView工具是AndroidSDK自带的分析工具,使用该工具我们可以看到我们的app启动过程中cpu执行了那些代码以及函数调用的时间。1、启动TraceView在AndroidSDK/tools目录下打开monitor也就是DDMS。然后在设备中选择要做TraceView分析的自己原创 2021-10-15 17:01:20 · 293 阅读 · 0 评论 -
Android其他4-逆向工程
Android其他-逆向工程1.Android反编译重新打包假设你有个简单的apk名字叫ListViewDemoMy.apk。MainActivity里面就:setContentView(R.layout.activity_listview); Log.d("djh", "test");我们通过反编译,然后修改这个log。1.1.对apk反编译下载apk_tool:到官网google下载下。然后配置环境变量通过以下指令反编译apkapktool d ListViewDemoM原创 2021-10-15 16:36:12 · 382 阅读 · 0 评论 -
Android中间层分析3.【WMS】Android 显示相关的学习
Android 显示相关的学习概述三角关系Activity 启动流程surfaceFlinger的流程总结概述Android显示相关的内容学习,因为做的项目比较少,所以只是大概描述一下显示架构方面的知识。WMS这边activity的显示,之前做过了一个后台静默启动的项目,意思是进程后台偷偷的启动,然后用户点击到这个app的时候秒开。这个项目也是比较有意思的。进程启动方面之前的文章有讲过了,而进程启动后,肯定会调用wms显示界面,关于这个项目我们就需要把wms压制保存状态。所以就开始研究了一下wms相关原创 2021-10-15 16:12:11 · 462 阅读 · 1 评论 -
Android中间层分析2.【media】音视频基础知识-9、Android最简单的视频播放器
1、最简单的音频播放器Android 音视频的代码好多都属于native层,Nupalyer和AweSomePlayer控制流程复杂, 学习难度比较大,作为app人员来说接触的机会又比较少,导致想学习知识的人门槛比较高。所以这边通过上层的控制,让大家慢慢熟悉播放器的原理。因此将非常简单的视频播放器,拿出来练习,源码提供大家参考。本app采用上层的MediaCodec 、 MediaExtractor 将视频频播放,播放显示器采用常用的SurfaceView。步骤大概如下:1、在xml中创建S原创 2020-06-29 11:25:22 · 225 阅读 · 0 评论 -
Android中间层分析1.【AMS】进程的启动-广播的注册和发送
1.广播的注册public Intent registerReceiver(IApplicationThread caller, String callerPackage, IIntentReceiver receiver, IntentFilter filter, String permission, int userId) { enforceNotIsolatedCaller("registerReceiver"); ArrayList<I原创 2020-06-29 11:08:03 · 253 阅读 · 0 评论 -
Android中间层分析1.【AMS】进程的启动-startservice启动分析
1.启动的入口startservice无论怎么样,Activity的startservice最终都会到,ActivityManagerService的startService,函数中来。@Override public ComponentName startService(IApplicationThread caller, Intent service, String resolvedType, String callingPackage, int userId)原创 2020-06-29 10:58:25 · 337 阅读 · 0 评论 -
Android中间层分析1.【AMS】进程的启动-Process.start分析
进程创建前public static final ProcessStartResult start(final String processClass, final String niceName, int uid, int gid, int[] gids, int debugFlags, int mou原创 2020-06-29 10:56:11 · 762 阅读 · 0 评论 -
Android中间层分析1.【AMS】进程的启动-startProcessLocked函数分析
四个函数final ProcessRecord startProcessLocked(String processName, ApplicationInfo info, boolean knownToBeDead, int intentFlags, String hostingType, ComponentName hostingName, boolean allowWhileBooting, boolean isolated, bo原创 2020-06-29 10:53:35 · 1016 阅读 · 0 评论 -
Android中间层分析1.【AMS】进程的启动-概述
我们知道进程的启动,最终都会进入到startProcessLocked函数中,如图我们看下有几种情况首先们关注有四个startProcessLocked接口重载的情况。但是他们最终都会调到统一的startProcessLocked。也就是最末尾的函数。下面一一介绍几种进程启动的情况:1、LocalService.startIsolatedProcess---->ams.startIsolatedProcessams为应用提供的local service 服务。启动一个孤立的进程。2、ams原创 2020-06-29 10:51:42 · 5458 阅读 · 0 评论 -
Android基础Thread8.小例子
简单的一个例子class FFReaderThread :public Thread{ //FifoQueue *mAudioQueue; // FifoQueue *mVideoQueue; SingleQueue *mAvQueue; sp<FFMPEGExtractor> mExtractor; public: FFReaderThread(const sp<FFMPEGExtractor> &extractor,SingleQueue *av原创 2020-06-29 10:46:27 · 120 阅读 · 0 评论 -
Android基础Thread7.三种阻塞型消息循环
3种阻塞型消息循环1、LooperThreadclass LooperThread extends Thread{private Handler mHandler;public static finalint MSG_1 = 1;public static finalint MSG_2 = 2;public void run(){ Looper.prepare(); Log.v("djh","run()"); mHandler = new Hand原创 2020-06-29 10:45:20 · 406 阅读 · 0 评论 -
Andoird基础Thread6.Linux 循环sem_t实现 数字循环
#include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <semaphore.h> //int flag = 1; sem_t sem; sem_t sem1; void *thread_function(void *arg); int main() { int res; pthread_t a_threa原创 2020-06-29 10:41:19 · 113 阅读 · 0 评论 -
Android基础Thread5.Android native thread--stop and destroy
在 4章节中使用到如下的线程代码bool AbcThread::threadLoop(){ // Put what you want to do when thread is running here... ALOGD("ThreadLoop()"); while(true){ int cout =mAbcData.getCout(); ALOGD("ThreadLoop() wait release %d \n",cout); } return tr原创 2020-06-29 10:40:09 · 154 阅读 · 0 评论 -
Android基础Thread4、Android native thread--自己测试的队列线程加消息阻塞和通知
class AbcData { public: AbcData(); void addCout(); int getCout(); private: Condition mWorkChangedCondition; Mutex mLock; int cout;};AbcData::AbcData(){ cout =0;}int AbcData::getCout(){ mWorkChangedCondition.wait(mLock); return c原创 2020-06-29 10:39:20 · 247 阅读 · 0 评论 -
Android基础Thread3、Android native thread--WorkQueue多线程队列的学习
路径\frameworks\base\tools\aapt学习别人是怎写工作线程的.h#ifndef AAPT_WORK_QUEUE_H#define AAPT_WORK_QUEUE_H#include <utils/Errors.h>#include <utils/Vector.h>#include <utils/threads.h>namespace android {/* * A threaded work queue. * * Th原创 2020-06-29 10:38:09 · 238 阅读 · 0 评论 -
Android基础-Thread2、Android native thread -初步使用
参考别人的文章自己弄了个运行class AbcThread: public Thread{public: AbcThread(); virtual ~AbcThread(); void addCout(); protected: virtual bool threadLoop(); // Explain later for the return value AbcData mAbcData;};void AbcThread::addCout(){ mAbcD原创 2020-06-29 10:36:39 · 273 阅读 · 0 评论 -
Android基础-Thread1、Android native thread-【转】
How to write a native thread and how to use itAbcThread.h#include <utils/Thread.h>Class AbcThread: public Thread{public: AbcThread(); virtual ~AbcThread();protected: virtual bool threadLoop(); // Explain later for the return valu原创 2020-06-29 10:34:09 · 243 阅读 · 0 评论 -
android基础-开发一个动画效果框架
这里写自定义目录标题android基础-开发一个动画效果框架框架结构使用方法android基础-开发一个动画效果框架本框架是借用facebook的弹性框架修改而来,如有侵权请告知.当然这也不是个成熟的框架,还在优化中.框架结构这里其实很简单.说简单了就是一个looper循环一直作用在一个算法上,让后这个算法一直输出值.可将这个值作用于android的动画.使用方法如果你想做个动画 如弹性动画 (我们以AE的万能弹性动画为例)公式如下,UI用下面的公式做了个弹性动画.你想把它搬到android原创 2020-06-29 10:32:21 · 226 阅读 · 0 评论 -
Android基础-Facebook Rebound 弹性动画库 源码分析
Facebook Rebound 弹性动画库 源码分析设计的时候老是闲动画太生硬,于是找到了这个弹性动画。这个弹性动画是facebook开源的,Rebound项目地址:https://github.com/facebook/rebound.git。来看下开源的DEMO提供效果。使用方法publicclass MainActivity extendsActivity {privatefinal BaseSpringSystem mSpringSystem = SpringSyst原创 2020-06-29 10:18:07 · 355 阅读 · 0 评论 -
自定义 球 + 波纹 View
自定义 球 + 波纹 View先看下需求 他说要做个这样的View ,1、上半部分可以点击,下半部分也可以点击的 2、 剩余流量是有个百分比的。3、最好中间那条线是可以波动的。4、中间还有文字。制作 很少写自定义View 就参考了网上的 写下 主要是 PorterDuffXfermode的应用 。 先看下效果 主要代码注释public class原创 2015-11-13 11:29:37 · 549 阅读 · 0 评论 -
自定义VIEW 流量统计 圆形圈
自定义VIEW 流量统计 圆形圈最近策划又改需求了 不需要上次做的 水波纹的球 的样式了 然后就 改成了下面的 样子了;主要是中间的圈 如果UI直接出图的话,很麻烦。于是就自己话了。 时间比较急 画的比较不好。这边共享这个CircleBar名字取得不好 应该叫 CircleProgressBar 会比较好点。 源码提供下载,使用主要如下在主 main.xml 中 申明 <c原创 2015-11-18 16:25:03 · 573 阅读 · 0 评论 -
android 圆角图标 和不规则圆角(边框)
android 圆角图标 和不规则圆角(边框)需要求就是如图 所示将 原图 变成 圆角 或者不规则的形状,应为桌面主题需要用到。当然 方法很多 这边提供如下方法。// 圓角 private Bitmap getRoundedCornerBitmap(Bitmap bitmap) { Bitmap roundBitmap = Bitmap.createBitmap(bitmap原创 2015-12-19 17:55:50 · 2531 阅读 · 0 评论 -
Android 仿qq消息 可拖动回弹的泡泡
先上图其实很简单的 但是主要自己去着手做,就会学习到一些东西。画这个view的难点在于中间的像皮条一样的贝萨尔曲线的坐标点的确定。我画了个图,大家对着图和代码应该能理解了。 图中的p1 p2 。。。。p8和代码中的point1 。。。。8 是对应的。源码路径https://github.com/djh123/paopaoViewDemo;原创 2016-04-27 16:14:28 · 568 阅读 · 0 评论 -
关于wifi portal认证--为浏览器添加wifi认证功能
关于wifi portal认证–为浏览器添加wifi认证功能1.什么是portal认证2.android的原生portal认证概要讲述3.独立出portal认证到浏览器1.什么是portal认证 就是连接wifi成功后,有些需要去一个登录页面,登录后才能正常使用wifi。在现在商店比如肯德基,万科,万达等很多外场,都有这样的认证方式。还不清楚的百度下portal认证2.android的原创 2016-05-28 10:16:51 · 22990 阅读 · 4 评论 -
Ubuntu React Native 环境搭建
Ubuntu React Native 环境搭建 本人环境是Ubuntu 64位 14.0.4 .安装 node.js过程:1.到node官网下载https://nodejs.org/en/ 2.将node-v4.4.4-linux-x64.tar.xz 下载到的 文件解压到自己的目录.3.将node配置成环境变量如下export NODE_HOME=/home/djh/djh/nod原创 2016-05-19 18:01:26 · 7531 阅读 · 1 评论 -
xposed 框架学习
xposed 框架学习xposed 框架学习一xposed 启动过程app_main虚拟机二hook流程分析findAndHookMethodfindMethodExacthookMethod1hookMethodNativehookedMethodCallbackhandleHookedMethodinvokeOriginalMethodNative三注册流程分析一、xp...原创 2015-11-08 09:39:45 · 4231 阅读 · 0 评论