<story><title>Introducing Android 9 Pie</title><url>https://android-developers.googleblog.com/2018/08/introducing-android-9-pie.html</url></story><parent_chain><item><author>mmastrac</author><text>One of the quieter features of Android 9 is that they are reducing the API surface of Android by explicitly black-listing and white-listing various APIs and fields that previously required reflection to access. None of these APIs were documented, but none of them were explicitly &amp;quot;off limits&amp;quot; before Android P.&lt;p&gt;That suggests that the life of Java as Android&amp;#x27;s primary language might be really coming to an end, even though Android is very much a platform built on Java&amp;#x2F;C++ at its core.</text></item></parent_chain><comment><author>jmgao</author><text>That&amp;#x27;s a bizarre conclusion to come to. The real motivation is that if you know apps are reflecting into your internal implementation details, and you want to make a change, you&amp;#x27;re stuck with a bunch of bad choices.&lt;p&gt;1. Break the apps.&lt;p&gt;Users tend to get annoyed when they upgrade the OS and their apps stop working.&lt;p&gt;2. Maintain a compatibility shim.&lt;p&gt;Depending on what the change you&amp;#x27;re making does, this might not even be possible. Assuming that it is possible, how do you know what needs a shim and what behavior is actually expected?&lt;p&gt;3. Give up and do something else instead.&lt;p&gt;Things get worse if you consider that OEMs may want to modify implementations as well, so you&amp;#x27;ll end up with apps that work, except on some devices. There&amp;#x27;s no sensible way to prevent app breakage when there are apps depending on your internal (and &lt;i&gt;explicitly&lt;/i&gt; private) API; the solution is enforcement.</text></comment>
<story><title>Introducing Android 9 Pie</title><url>https://android-developers.googleblog.com/2018/08/introducing-android-9-pie.html</url></story><parent_chain><item><author>mmastrac</author><text>One of the quieter features of Android 9 is that they are reducing the API surface of Android by explicitly black-listing and white-listing various APIs and fields that previously required reflection to access. None of these APIs were documented, but none of them were explicitly &amp;quot;off limits&amp;quot; before Android P.&lt;p&gt;That suggests that the life of Java as Android&amp;#x27;s primary language might be really coming to an end, even though Android is very much a platform built on Java&amp;#x2F;C++ at its core.</text></item></parent_chain><comment><author>makmanalp</author><text>&amp;gt; That suggests that the life of Java as Android&amp;#x27;s primary language might be really coming to an end&lt;p&gt;Huh - how did you get to this conclusion? What would be the alternative? Do you mean Java was essentially &amp;quot;better&amp;quot; because it had access to all the undocumented APIs while other languages didn&amp;#x27;t?</text></comment>