
Android
OPENTHOS
一名菜鸟工程师
展开
-
开源项目920富文本编辑器
TextEditor文本编辑器前言该富文本编辑器: 内核使用的是ace(https://githup.com/ajaxorg/ace) , 所以编译该项目需要先编辑ace内核。前提: 先安装 node node.js npm方法: cd tools/assets/ace/node ./Makefile.dryice.js常出现的问题: 会出现一些问题: 比如Modules thow原创 2018-03-15 22:09:02 · 1385 阅读 · 0 评论 -
Activity的启动流程
一个代码分析的补丁From: Smaster <m18410261910@163.com>Date: Thu, 8 Mar 2018 21:08:27 +0800Subject: [PATCH] init activity.Signed-off-by: caoyongren <m18410261910@163.com>--- core/java/android/app/Activity.ja原创 2018-03-08 21:14:33 · 323 阅读 · 0 评论 -
定制Oreo 初步
StartupMenu的实现逻辑8.0 StartupMenu设计在原有5.1的基础上进行的修改.借用TaskBar的启动方式.将StartupMenu以SystemUI的Dialog形式启动.将StartupMenu移植到SystemUI中.8.0 StartupMenu结构frameworks/base/packages/SystemUI/src/com/android/system原创 2017-10-31 10:25:47 · 498 阅读 · 0 评论 -
事件分发全面认识
事件分发全面认识(转自–>)1.事件在哪些对象之间进行传递?Activity(Window) – > ViewGroup – > View2. 事件的组成元素方法:dispatchTouchEvent()作用: 分发点击事件调用时刻: 当点击事件能够传递给当前View时,该方法被调用.return true: 消费事件事件不会往下传递后续事件(Move Up)会继续分发到该View转载 2017-09-08 09:20:43 · 321 阅读 · 0 评论 -
窗口逻辑
窗口化的逻辑AMS中控制保存着Window的info例如:窗口的尺寸/窗口的位置.同一个栈中有多个Activity.AMS中 ActivityStack ActivityStack TaskRecord ActivityRecord 对应: TaskStack Task AppWindowToken AMS 和 WMS 中是一一对应.WMS中控制着每一个Window窗口, Super原创 2017-09-04 23:07:05 · 379 阅读 · 0 评论 -
SystemUI实现逻辑及对比8.0
SystemUI实现逻辑SystemUI中的关键类BaseStatusBar.java 在android 8.0中该类被去除.5.1中是一个抽象类.它的Start()方法继承自SystemUI,该方法实现状态栏启动的具体步骤.SystemUI.java(抽象类) SystemUi被SystemUIService调用,SystemUiService继承service.所以StatusBar原创 2017-08-31 16:04:17 · 1883 阅读 · 0 评论 -
Android source code
Start1. 下载repo 工具(在docker中则不需要)mkdir ~/binPATH=~/bin:$PATHcurl http://192.168.0.185/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo2.建立工作目录:mkdir WORKING_DIRECTORYcd WORKING_DIRECTORY3.初始原创 2017-08-09 12:42:14 · 847 阅读 · 0 评论 -
Android App 基础性能优化
1# 性能优化最近被安排解决开始菜单启动慢,有些经验这里做一个笔记1. 首先从进程入手,分析进程是否被杀死。如果被杀死,解决方案:Android service后台服务进程的守护: AndroidManifest.xml+ <receiver android:name=".KeepReceiver">+ <intent-filter>+原创 2017-06-22 21:14:43 · 338 阅读 · 0 评论 -
ubuntu下反编译apk
ubuntu下反编译工具apktool下载简单指令./apktool/apktool d com.microsoft.office.word-2.apk (注意:目录节点和)smail文件简单介绍1 B — byte2 C — char3 D — double4 F — float5 I — int 6 J — float7 S — short8 V — short9 Z —原创 2017-05-07 09:57:43 · 468 阅读 · 0 评论 -
Log调试的技巧
常规启动模拟器取log启动模拟器(我用的qume)adb kill-server //用于杀死其他进程。adb logcat > debug.log //建一个日志文件然后另起一个终端:tail -f debug.log这样你操作模拟器,就可以在debug.log中看到日志信息。远程取logadb connect ip //测试机的ipadb logcat > debug.log原创 2017-05-02 14:39:45 · 1178 阅读 · 0 评论 -
Android 5.1实现休眠的方法
实现休眠类: PowerManager.java 方法: goToSleep(int time);原创 2017-04-27 15:04:25 · 1632 阅读 · 0 评论 -
MultiWindow实现窗口的层叠
android MultiWindow实现窗口的层叠方法:ActivityStack adjustStackFocus(ActiviyRecord r, boolean newTask) {}主要代码:+ int parentStackId = HOME_STACK_ID;// 桌面 定义为: 0+ int intentFlags = 0;++原创 2017-04-15 13:36:12 · 1409 阅读 · 0 评论 -
对于android6.0实现-- > 窗口呈现的逻辑分析
对于android6.0实现– > 窗口呈现的逻辑分析经过两周的学习虽然仍是没有把详细逻辑顺清楚,但是就需求而言可以实现,暂且做个记录public final class ActivityStackSupervisor implements DisplayListener { /* ASS computeStackFocus中: AMS 的resizeStack(id , Rect);原创 2017-04-15 13:22:53 · 759 阅读 · 0 评论 -
Android 基础控件- EditText
需求: 实现文本的撤销操作。主要的代码:mEditText = ((EditText) findViewById(R.id.editText)); mPerformEdit = new PerformEdit(mEditText){ @Override protected void onTextChanged(Editable s原创 2017-03-07 16:29:44 · 325 阅读 · 0 评论 -
Android Based control -- CBAlignTextView
我们都十分熟悉TextView的使用,但是还有一个不错的控件CBAlignTextView使用步骤:build.gradel加入dependencies compile ‘me.codeboy.android:align-text-view:2.3.0’xml中<me.codeboy.android.aligntextview.CBAlignTextView android:id="原创 2017-03-05 09:32:14 · 715 阅读 · 0 评论 -
在自己的Android系统上去处理第三方应用的一些问题
自己禅达下有这样一个任务: microsoft office powerpoint .apk 在系统上没有窗口的 上面的header就是带有最小化/最大化/关闭图标的那个栏,称它为header处理该问题:首先不要去反编译然后加自己的需求,因为这样做存在侵权的问题 此类问题具体思考方向: 1. 系统Activity.java这个类是所有activity的祖类,我们可以根据包名来确定ppt,然后原创 2017-03-04 01:16:03 · 300 阅读 · 0 评论 -
Android中控制SystemUI 中任务栏的的显示与隐藏
工作中负责处理任务栏的显示与隐藏,今天貌似有点失眠出来写点经验: 主要涉及的几个类和主要处理的方法:PhoneStatusBar.java extends BaseStatusBar.java(抽象类) implements CommandQueue.Callbacks(Callbacks是一个内部接口) e原创 2017-03-04 01:03:12 · 3401 阅读 · 0 评论 -
在ubuntu 16.04上编译Android 源码
网上有很多编译源码的版本,但是都缺陷,自己工作期间整理一版1.安装openjdk 三句指令①sudo add-apt-repository ppa:openjdk-r/ppa ②sudo apt-get update ③sudo apt-get install openjdk-7-jdk2.安装vim编译器sudo apt-get install vim3.配置环境变量sudo vim /et原创 2016-12-20 20:53:35 · 1432 阅读 · 0 评论 -
Android开发中常用Dialog
工作中经常要使用dialog,写的过程需要注意:大小,位置: private void showDialog(View view, int padding) { if(mDialog == null) { mDialog = new Dialog(mContext); mDialog.requestWindowFeature(Window.FEATURE_NO原创 2016-12-15 10:57:45 · 308 阅读 · 0 评论 -
Android开发中右键菜单中出现的问题
工作中经常创建和操作右键菜单,在开发中往往出现这样一个问题: 在StartupMenu中弹出右键菜单的Dialog,你针对其中的一个TextView进行状态改变,其他的Dialog的状态也发生改变。例如:你首次右键的变为不可点击状态,其他所有都变为不可点击状态。 解决:显然,尽管你每次右键都是重新弹出一个Dialog,但是,它并没有重新创建。原创 2016-12-11 14:34:13 · 1163 阅读 · 0 评论 -
Android中获取应用信息
获取应用信息工作中需要经常获取App的各种信息:现在写一个封装类这里主要看Codepublic class AppInfo implements Parcelable {private String appLabel;private Drawable appIcon;private Intent intent;private String pkgName;private Date date;原创 2016-12-09 09:39:29 · 409 阅读 · 0 评论 -
Android中不常见的监听: 鼠标划过/双击/右键
Android中不常见的监听: 鼠标划过/双击/右键* 工作中经常接触 这些监听,分享出来,大家了解一下*鼠标划过—- 实例 划过弹出 Dialog -tip提示private class HoverListener implements OnHoverListener {原创 2016-12-06 19:41:38 · 5173 阅读 · 0 评论 -
ContentProvider 跨进程数据读取
跨进程数据读取思路1.在需要暴露数据的程序A中①建数据库 ②建ContentProvider类 ③注册清单文件2.程序 B中进行获取数据。原创 2016-12-05 19:37:14 · 978 阅读 · 0 评论 -
Android回顾(三)
Android基本控件及表单三大控件(二)、基本控件:—— TextView: 1、andorid:text 2、 android:textColor 3、 android:textSize 4、andorid:height 5、 android:width 6、 android:inputType 7、 android:singleLine 8、android:gravity原创 2016-11-13 09:09:05 · 268 阅读 · 0 评论 -
Android回顾(二)
Android的事件处理一、Android事件处理的概述: (一)、概念: 在Android中,我们可以通过事件处理使UI与用户互动(UI Events)。具体形式则是以事件监听器(event listener)的方式來“监听”用户的动作。 Android提供了非常良好的UI事件处理机制。View是绘制UI的类,每个View对象都可以向Android注册一个事件原创 2016-11-13 09:04:55 · 249 阅读 · 0 评论 -
Android回顾(一)
Android Studio 快捷键一、Android Studio:【Mac系统版本常用快捷键】(一)、第一部分 1、ctrl + / 代码行注释 2、ctrl + Q 查看JavaDoc 3、ctrl + 鼠标左键 查看源码 4、ctrl + D 复制文本至下一行 5、ctrl +原创 2016-11-13 09:01:44 · 238 阅读 · 0 评论 -
JAVA回顾(五)
网络编程一、Java中的ping }在命令行中,可以通过“ping [host]”的方法得到指定主机的IP地址 }通过java.net中的InetAddress类,可以得到指定主机的IP地址 ◦如果没有指定机器,则将会返回本地主机的IP地址 本机IP地址为127.0.0.1 二、端口号: }端口号可以从0到65535,通常将它分为三类: ◦公认端口(Well Known Ports):原创 2016-11-13 07:47:10 · 270 阅读 · 0 评论 -
JAVA回顾(四)
线程 一、线程状态的分类 NEW:创建一个线程,比如MyThread mt = new MyThread(); RUNNABLE:可运行状态,比如mt.start(); WAITING/TIMED_WAITING:不可运行状态,比如MyThread.sleep() BLOCKED:锁定状态,当前线程如果被解锁,还可以再次执行 TERMINATED:终止状态,线程体执行结束二、设置线程的优原创 2016-11-13 07:42:29 · 243 阅读 · 0 评论 -
JAVA回顾(三)
JSON回顾一、定义:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 二、基本结构: 1.对象: 对象在js中表示为“{}”扩起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型原创 2016-11-13 07:35:38 · 254 阅读 · 0 评论 -
JAVA回顾 (一)
反射一、定义:反射就是获得一个类的信息,信息包括属性和方法二、反射所用到的方法1.Class cls = Class.forName(反射的类的全路径→包名+类名); 2.Method类:封装一些获得反射类的方法,比如:返回方法→getName(),返回值类型→getReturnType() 3.newInstance():是Class类中的方法,初始化一个类的实例 T t = cls.newI原创 2016-11-13 07:21:31 · 366 阅读 · 0 评论 -
Android 初步学习第一个阶段--异步任务 ①
Android 初步学习第一个阶段–异步任务简单介绍简单实例:public class MainActivity extends AppCompatActivity {private static final String TAG = "ManiActivity"; //习惯①private Context mContext = this;//习惯②private TextView mText原创 2016-11-05 13:28:58 · 265 阅读 · 0 评论 -
简单介绍:Debugger使用
Android Studio中的Debugger使用技巧基础介绍 1.step over: 一步步往下走. 2.step into: 看到方法往里面走。 3.force step into 所有方法看完整。 所有方法走一遍,这个就是走入源码,进入源码研究。 4.step out: 有断点下一个,走完断点继续走。 例如:将一个循环走完,然后继续走。 5.run to Cu原创 2016-10-30 23:08:52 · 6979 阅读 · 0 评论 -
Android开发实战经验总结
Android开发实战经验总结1.好习惯 对于一些字符常量要进行全局变量化和类引用: //Activity间使用Intent传递数据的两种写法: //写法① Intent intent = new Intent(this, DestActivity.class); intent.putExtra(“param”, “clock”); SrcActivity.startActivity(i原创 2016-10-30 00:10:55 · 381 阅读 · 0 评论 -
ContentProvider的实例基础介绍
ContentProvider的实例基础介绍1.介绍URI *要从ContentProvider获取数据,需要使用该ContentProvider提供的URI。因为ContentProvider定义的URI对该ContentProvider是唯一的,所以记录URI并能被程序员看到和调用非常重要。 例如:ContactsContract.Contacts.CONTENT_URI* 2.介绍Con原创 2016-10-15 11:49:34 · 469 阅读 · 0 评论