displayandroid
⑴ Android上有没有类似 iPad Air Display 的应用程序
Air display 是一款可以把 iPad 当作电脑的第二屏扩展显示来使用的应用程序,通过无线把 iPad 与电脑连接起来,就可以使用。
Android上有类似 iPad Air Display 的应用程序,它可以在安卓设备完成Air display的功能。
比较常见的一款软件是iDisplay,iOS/Android版本均有。下载的话,在PP助手可以找到。
⑵ 如何在android上打印dom树,render树,display
在做chromium的时候,我们在debug的时候经常使用mprendertree去打印网页对应的dom树等内容。
但是在刚接触android的时候,一直非常烦恼怎么用android自带的browser去打印出来这些内容。
幸好的是,framework里面提供了一些接口,让我们可以实现这个功能。
于是,写了个新的feature,在android的browser里面,按下menu键,就会增加三个新的选项。点击响应的选项,就会打印出来相对应的tree.
废话不多说,直接贴code。
在browser的app中做下列修改:
diff --git a/res/menu/browser.xml b/res/menu/browser.xml
index 49fc4a4..08a240f 100644
--- a/res/menu/browser.xml
+++ b/res/menu/browser.xml
@@ -80,6 +80,18 @@
<item
android:id="@+id/save_snapshot_menu_id"
android:title="@string/menu_save_snapshot" />
+ <!--Add print_dom_tree by chao S -->
+ <item
+ android:id="@+id/print_dom_tree"
+ android:title="@string/dom_tree_title" />
+ <item
+ android:id="@+id/print_render_tree"
+ android:title="@string/render_tree_title" />
+ <item
+ android:id="@+id/print_display_tree"
+ android:title="@string/display_tree_title" />
+
+ <!--Add print_dom_tree by chao E -->
</group>
<group
android:id="@+id/SNAPSHOT_MENU">
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 870d0c7..c5dbf50 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -908,7 +908,11 @@
<!-- The description of the suggestion that lets the user search the web for the query currently
in the text field. -->
<string name="search_the_web">Search the web</string>
-
+ <!-- Add print_dom_tree by chao S -->
+ <string name="dom_tree_title">Print Dom tree</string>
+ <string name="render_tree_title">Print render tree</string>
+ <string name="display_tree_title">Print display tree</string>
+ <!-- Add print_dom_tree by chao E -->
<!-- HTML5 dialogs -->
<!-- Used as a status bar notification when the browser is running out of space trying to allocate or increase the database quota for an HTML5 databae or application cache. -->
<string name="webstorage_outofspace_notification_title">Browser storage full</string>
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 358e746..ac3d813 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1967,6 +1967,23 @@ public class Controller extends FjController
if (source == null) break;
new SaveSnapshotTask(source).execute();
break;
+ // -- Add print_dom_tree by chao
+ case R.id.print_dom_tree:
+ final Tab dom = getTabControl().getCurrentTab();
+ dom.getWebViewClassic().mpDomTree(true);
+ break;
+
+ case R.id.print_render_tree:
+ final Tab render = getTabControl().getCurrentTab();
+ render.getWebViewClassic().mpRenderTree(true);
+ break;
+
+ case R.id.print_display_tree:
+ final Tab display = getTabControl().getCurrentTab();
+ display.getWebViewClassic().mpDisplayTree();
+ break;
+
+ // Add print_dom_tree by chao --
case R.id.page_info_menu_id:
showPageInfo();
在framework中做下列修改:
diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java
index 4bfce04..d6c7cf3 100755
--- a/core/java/android/webkit/WebViewClassic.java
+++ b/core/java/android/webkit/WebViewClassic.java
@@ -5339,7 +5339,10 @@ public final class WebViewClassic extends FjWebViewClassic
* debug only
*/
public void mpDomTree(boolean toFile) {
- mWebViewCore.sendMessage(EventHub.DUMP_DOMTREE, toFile ? 1 : 0, 0);
+ // -- Add print_dom_tree by chao
+ //mWebViewCore.sendMessage(EventHub.DUMP_DOMTREE, toFile ? 1 : 0, 0);
+ mWebViewCore.sendMessage(EventHub.DUMP_DOMTREE, toFile ? 1 : 1, 0);
+ // Add print_dom_tree by chao --
}
/**
@@ -5349,7 +5352,10 @@ public final class WebViewClassic extends FjWebViewClassic
* debug only
*/
public void mpRenderTree(boolean toFile) {
- mWebViewCore.sendMessage(EventHub.DUMP_RENDERTREE, toFile ? 1 : 0, 0);
+ // -- Add print_dom_tree by chao
+ // mWebViewCore.sendMessage(EventHub.DUMP_RENDERTREE, toFile ? 1 : 0, 0);
+ mWebViewCore.sendMessage(EventHub.DUMP_RENDERTREE, toFile ? 1 : 1, 0);
+ // Add print_dom_tree by chao --
}
/**
extern/webkit中的修改如下:
diff --git a/Source/WebKit/android/AndroidLog.h b/Source/WebKit/android/AndroidLog.h
index f034d35..2efab96 100644
--- a/Source/WebKit/android/AndroidLog.h
+++ b/Source/WebKit/android/AndroidLog.h
@@ -37,12 +37,18 @@
#ifdef ANDROID_DOM_LOGGING
#include <stdio.h>
extern FILE* gDomTreeFile;
-#define DOM_TREE_LOG_FILE "/sdcard/domTree.txt"
+// -- Add print_dom_tree by chao
+// #define DOM_TREE_LOG_FILE "/sdcard/domTree.txt"
+#define DOM_TREE_LOG_FILE "/data/local/domTree.txt"
+// Add print_dom_tree by chao --
#define DUMP_DOM_LOGD(...) { if (gDomTreeFile) \
fprintf(gDomTreeFile, __VA_ARGS__); else ALOGD(__VA_ARGS__); }
extern FILE* gRenderTreeFile;
-#define RENDER_TREE_LOG_FILE "/sdcard/renderTree.txt"
+// -- Add print_dom_tree by chao
+// #define RENDER_TREE_LOG_FILE "/sdcard/renderTree.txt"
+#define RENDER_TREE_LOG_FILE "/data/local/renderTree.txt"
+// Add print_dom_tree by chao --
#define DUMP_RENDER_LOGD(...) { if (gRenderTreeFile) \
fprintf(gRenderTreeFile, __VA_ARGS__); else ALOGD(__VA_ARGS__); }
#else
@@ -50,8 +56,12 @@ extern FILE* gRenderTreeFile;
#define DUMP_RENDER_LOGD(...) ((void)0)
#endif /* ANDROID_DOM_LOGGING */
-#define DISPLAY_TREE_LOG_FILE "/sdcard/displayTree.txt"
-#define LAYERS_TREE_LOG_FILE "/sdcard/layersTree.plist"
+// -- Add print_dom_tree by chao
+//#define DISPLAY_TREE_LOG_FILE "/sdcard/displayTree.txt"
+//#define LAYERS_TREE_LOG_FILE "/sdcard/layersTree.plist"
+#define DISPLAY_TREE_LOG_FILE "/data/local/displayTree.txt"
+#define LAYERS_TREE_LOG_FILE "/data/local/layersTree.plist"
+// Add print_dom_tree by chao --
#define FLOAT_RECT_FORMAT "[x=%.2f,y=%.2f,w=%.2f,h=%.2f]"
#define FLOAT_RECT_ARGS(fr) fr.x(), fr.y(), fr.width(), fr.height()
本文为极度寒冰原创
⑶ 安卓手机的display在哪里
一般是测试里呀 要在拨号键里使用特殊的按键组合 sony *#*#7378423#*#* 进入“Service tests” 有display 自己刚试了
⑷ android 中的wifi-display 怎么使用
使用方法(以努比亚为例):
1、进入努比亚Z7设置,找到“屏幕投影”设置,之后先将此功能开启,然后就可以将手机与支持WLAN Display的无线显示设备监理连接,建立连接连接后,手机画面与声音将通过Wifi事时传输给连接的设备。
2、连接成功后,我们操作的手机画面就将同步在显示器或者液晶电视中大屏显示了,这对于看手机照片、玩手机游戏以及看手机电影或者PPT会议来说,无疑相当方便。
⑸ Android_WMS_启动流程
本文主要是基于android10.0.0来讲述下WMS的启动流程
WMS作为系统的一个关键服务其是在SystemServer.java::startOtherServices中启动的
WMS主要有下面几个作用
1:应用程序通过WMS向SurfaceFinger申请surface,surface代表的是绘图表面,应用程序绘制都必须在绘图表面上
2:管理窗口的层级,一个窗口一般在WMS端都是一个WindowState,其是有层级区分的,其有baseLayer和subLayer两个值共同确定
3:窗口动画:WindowAnimator
其中上面有一个比较重要的对象PhoneWindowManager,主要是负责窗口管理的各种策略
WindowManagerPolicy mPolicy;---------------->对应的实现类PhoneWindowManager,主要是窗口管理的策略和按键的处理
final ActivityManagerInternal mAmInternal;------>对应的是AMS,持有AMS对象
final ActivityTaskManagerInternal mAtmInternal;--->管理Task的,android10.0新增
final ArraySet<Session> mSessions = new ArraySet<>();---->会话,主要是建立和surfaceFinger的连接
final WindowHashMap mWindowMap = new WindowHashMap();---->缓存windowstate
AMS,WMS之间数据是对应的,通过token值可以在AMS,WMS,应用程序之后来唯一确定一组Window,token是关联着一组窗口的,可能有多个WindowState的token值是相同的
整个启动过程涉及3个线程: system_server主线程, “android.display”, “android.ui”, 整个过程是采用阻塞方式(利用Handler.runWithScissors)执行的. 其中WindowManagerService.mH的Looper运行在 “android.display”进程,也就意味着WMS.H.handleMessage()在该线程执行。
⑹ android 中的wifi-display 怎么使用
1.如今很多智能手机均支持WIFI Display技术,通过该功能,用户可以利用Wifi无线网络,将手机无线连接电脑显示器或者投影仪,从而可以让手机小屏幕的东西,展现在大屏幕中,从而带来更好的视觉体验。那么wifi display怎么用呢?以努比亚Z7手机为例,简单介绍下wifi display使用方法以及一些注意事项
2.要实现手机无线连接液晶电视或者电脑,必须手机、电脑或者液晶电视均同时支持Wi-Fi Display功能,另外需要在Wifi网络环境下,才能实现同步投影。如今很多手机、电脑、液晶电视均支持此功能,使用上需要在手机中进行设置.
3.进入努比亚Z7设置,找到“屏幕投影”设置,之后先将此功能开启,然后就可以将手机与支持WLAN Display的无线显示设备监理连接,建立连接连接后,手机画面与声音将通过Wifi事时传输给连接的设备
4.连接成功后,我们操作的手机画面就将同步在显示器或者液晶电视中大屏显示了,这对于看手机照片、玩手机游戏以及看手机电影或者PPT会议来说,无疑相当方便
5.关于nubia Z7手机wifi display怎么用就为大家介绍到这里。随着无线视频技术的流行,今后该功能也可能被广泛应用
⑺ Android中的手机屏幕像素的几种获取方式
使用Activity类中的方法来获取,使用范围是在Activity的类及子类中和有传入Activity类及子类的对象参数的方法中使用
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 通过Activity类中的getWindowManager()方法获取窗口管理,再调用getDefaultDisplay()方法获取获取Display对象
Display display = getWindowManager().getDefaultDisplay();
// 方法一(推荐使用)使用Point来保存屏幕宽、高两个数据
Point outSize = new Point();
// 通过Display对象获取屏幕宽、高数据并保存到Point对象中
display.getSize(outSize);
// 从Point对象中获取宽、高
int x = outSize.x;
int y = outSize.y;
// 通过吐司显示屏幕宽、高数据
Toast.makeText(this, "手机像素为:" + x + "x" + y, Toast.LENGTH_LONG).show();
// 方法二(不推荐使用)直接通过Display对象获取屏幕宽、高数据
int width = display.getWidth();
int height = display.getHeight();
// 通过吐司显示屏幕宽、高数据
Toast.makeText(this, "手机像素为:" + width + "x" + height, Toast.LENGTH_LONG).show();
}
}
⑻ Android有没有类似et display这样的应用
Android上有类似 iPad Air Display 的应用程序,它可以在安卓设备完成Air display的功能。
比较常见的一款软件是iDisplay,iOS/Android版本均有。下载的话,在PP助手可以找到。
⑼ android Display怎么应用到程序中
不明白你问的内容。
你是指控件的display属性?还是android的display模块?
⑽ android的display类中有getrealsize方法,为什么调用的时候会报错
应该是你自定义的控件有一些自己写的属性.而这些属性是要在attrs.xml中定义的.
在menu的布局layout中,没有检测到这些自定义属性.所以报错..
检查一下你的attrs.xml吧.如果正常.看看是不是包名不对.