diff options
| -rw-r--r-- | docs/html/about/dashboards/index.jd | 52 | ||||
| -rw-r--r-- | docs/html/design/media/wear/ContextualExample.006.png | bin | 185830 -> 156910 bytes | |||
| -rw-r--r-- | docs/html/design/media/wear/ContextualExample.006_2x.png | bin | 657190 -> 544968 bytes | |||
| -rw-r--r-- | docs/html/design/wear/context.jd | 2 | ||||
| -rw-r--r-- | docs/html/training/articles/perf-jni.jd | 26 |
5 files changed, 45 insertions, 35 deletions
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd index 448dcda0d477..063084df7477 100644 --- a/docs/html/about/dashboards/index.jd +++ b/docs/html/about/dashboards/index.jd @@ -57,7 +57,7 @@ Platform Versions</a>.</p> </div> -<p style="clear:both"><em>Data collected during a 7-day period ending on November 3, 2014. +<p style="clear:both"><em>Data collected during a 7-day period ending on December 1, 2014. <br/>Any versions with less than 0.1% distribution are not shown.</em> </p> @@ -88,7 +88,7 @@ Screens</a>.</p> </div> -<p style="clear:both"><em>Data collected during a 7-day period ending on November 3, 2014. +<p style="clear:both"><em>Data collected during a 7-day period ending on December 1, 2014. <br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p> @@ -108,7 +108,8 @@ support for any lower version (for example, support for version 2.0 also implies <img alt="" style="float:right" -src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0&chd=t%3A74.7%2C25.3&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=400x250" /> +src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0&chf=bg%2Cs%2C00000000&chd=t%3A72.2%2C27.8&chco=c4df9b%2C6fad0c&cht=p&chs=400x250" /> + <p>To declare which version of OpenGL ES your application requires, you should use the {@code android:glEsVersion} attribute of the <a @@ -126,17 +127,17 @@ uses.</p> </tr> <tr> <td>2.0</td> -<td>74.7%</td> +<td>72.2%</td> </tr> <tr> <td>3.0</td> -<td>25.3%</td> +<td>27.8%</td> </tr> </table> -<p style="clear:both"><em>Data collected during a 7-day period ending on November 3, 2014</em></p> +<p style="clear:both"><em>Data collected during a 7-day period ending on December 1, 2014</em></p> @@ -154,42 +155,42 @@ uses.</p> var VERSION_DATA = [ { - "chart": "//chart.googleapis.com/chart?chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat&chd=t%3A0.6%2C9.8%2C8.5%2C50.9%2C30.2&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=500x250", + "chart": "//chart.googleapis.com/chart?chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat&chf=bg%2Cs%2C00000000&chd=t%3A0.5%2C9.1%2C7.8%2C48.7%2C33.9&chco=c4df9b%2C6fad0c&cht=p&chs=500x250", "data": [ { "api": 8, "name": "Froyo", - "perc": "0.6" + "perc": "0.5" }, { "api": 10, "name": "Gingerbread", - "perc": "9.8" + "perc": "9.1" }, { "api": 15, "name": "Ice Cream Sandwich", - "perc": "8.5" + "perc": "7.8" }, { "api": 16, "name": "Jelly Bean", - "perc": "22.8" + "perc": "21.3" }, { "api": 17, "name": "Jelly Bean", - "perc": "20.8" + "perc": "20.4" }, { "api": 18, "name": "Jelly Bean", - "perc": "7.3" + "perc": "7.0" }, { "api": 19, "name": "KitKat", - "perc": "30.2" + "perc": "33.9" } ] } @@ -203,27 +204,28 @@ var SCREEN_DATA = "Large": { "hdpi": "0.6", "ldpi": "0.5", - "mdpi": "4.5", - "tvdpi": "1.9", + "mdpi": "4.6", + "tvdpi": "2.0", "xhdpi": "0.6" }, "Normal": { - "hdpi": "36.6", - "mdpi": "9.9", - "xhdpi": "18.9", - "xxhdpi": "16.0" + "hdpi": "36.9", + "mdpi": "9.4", + "tvdpi": "0.2", + "xhdpi": "18.8", + "xxhdpi": "16.3" }, "Small": { - "ldpi": "5.8" + "ldpi": "5.4" }, "Xlarge": { "hdpi": "0.3", - "mdpi": "3.9", - "xhdpi": "0.5" + "mdpi": "3.8", + "xhdpi": "0.6" } }, - "densitychart": "//chart.googleapis.com/chart?chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chd=t%3A6.3%2C18.3%2C1.9%2C37.5%2C20.0%2C16.0&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=400x250", - "layoutchart": "//chart.googleapis.com/chart?chl=Xlarge%7CLarge%7CNormal%7CSmall&chd=t%3A4.7%2C8.1%2C81.4%2C5.8&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=400x250" + "densitychart": "//chart.googleapis.com/chart?chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chf=bg%2Cs%2C00000000&chd=t%3A5.9%2C17.8%2C2.2%2C37.8%2C20.0%2C16.3&chco=c4df9b%2C6fad0c&cht=p&chs=400x250", + "layoutchart": "//chart.googleapis.com/chart?chl=Xlarge%7CLarge%7CNormal%7CSmall&chf=bg%2Cs%2C00000000&chd=t%3A4.7%2C8.3%2C81.6%2C5.4&chco=c4df9b%2C6fad0c&cht=p&chs=400x250" } ]; diff --git a/docs/html/design/media/wear/ContextualExample.006.png b/docs/html/design/media/wear/ContextualExample.006.png Binary files differindex 7c3da57a51ad..e680afb803f2 100644 --- a/docs/html/design/media/wear/ContextualExample.006.png +++ b/docs/html/design/media/wear/ContextualExample.006.png diff --git a/docs/html/design/media/wear/ContextualExample.006_2x.png b/docs/html/design/media/wear/ContextualExample.006_2x.png Binary files differindex 319530d7a3b7..ee4087e00992 100644 --- a/docs/html/design/media/wear/ContextualExample.006_2x.png +++ b/docs/html/design/media/wear/ContextualExample.006_2x.png diff --git a/docs/html/design/wear/context.jd b/docs/html/design/wear/context.jd index 2e6653267e90..688806fbd645 100644 --- a/docs/html/design/wear/context.jd +++ b/docs/html/design/wear/context.jd @@ -131,7 +131,7 @@ app.</p> <div class="slide"> <h2>Zoo</h2> -<p>Notifies visitors when the penguins are going to be fed! +<p>Notifies visitors when the penguins are going to be fed. </p> <img src="{@docRoot}design/media/wear/ContextualExample.014.png" alt="" srcset="{@docRoot}design/media/wear/ContextualExample.014.png 1x, diff --git a/docs/html/training/articles/perf-jni.jd b/docs/html/training/articles/perf-jni.jd index 1a40f6237679..5a9fa1e04b46 100644 --- a/docs/html/training/articles/perf-jni.jd +++ b/docs/html/training/articles/perf-jni.jd @@ -635,20 +635,31 @@ avoid some problems. <a name="faq_FindClass" id="faq_FindClass"></a> <h2>FAQ: Why didn't <code>FindClass</code> find my class?</h2> +<p>(Most of this advice applies equally well to failures to find methods +with <code>GetMethodID</code> or <code>GetStaticMethodID</code>, or fields +with <code>GetFieldID</code> or <code>GetStaticFieldID</code>.)</p> + <p>Make sure that the class name string has the correct format. JNI class names start with the package name and are separated with slashes, such as <code>java/lang/String</code>. If you're looking up an array class, you need to start with the appropriate number of square brackets and must also wrap the class with 'L' and ';', so a one-dimensional array of -<code>String</code> would be <code>[Ljava/lang/String;</code>.</p> +<code>String</code> would be <code>[Ljava/lang/String;</code>. +If you're looking up an inner class, use '$' rather than '.'. In general, +using <code>javap</code> on the .class file is a good way to find out the +internal name of your class.</p> + +<p>If you're using ProGuard, make sure that +<a href="{@docRoot}tools/help/proguard.html#configuring">ProGuard didn't +strip out your class</a>. This can happen if your class/method/field is only +used from JNI. <p>If the class name looks right, you could be running into a class loader issue. <code>FindClass</code> wants to start the class search in the class loader associated with your code. It examines the call stack, which will look something like: <pre> Foo.myfunc(Native Method) - Foo.main(Foo.java:10) - dalvik.system.NativeStart.main(Native Method)</pre> + Foo.main(Foo.java:10)</pre> <p>The topmost method is <code>Foo.myfunc</code>. <code>FindClass</code> finds the <code>ClassLoader</code> object associated with the <code>Foo</code> @@ -656,12 +667,9 @@ class and uses that.</p> <p>This usually does what you want. You can get into trouble if you create a thread yourself (perhaps by calling <code>pthread_create</code> -and then attaching it with <code>AttachCurrentThread</code>). -Now the stack trace looks like this:</p> -<pre> dalvik.system.NativeStart.run(Native Method)</pre> - -<p>The topmost method is <code>NativeStart.run</code>, which isn't part of -your application. If you call <code>FindClass</code> from this thread, the +and then attaching it with <code>AttachCurrentThread</code>). Now there +are no stack frames from your application. +If you call <code>FindClass</code> from this thread, the JavaVM will start in the "system" class loader instead of the one associated with your application, so attempts to find app-specific classes will fail.</p> |