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吧.如果正常.看看是不是包名不對.