getLaunchIntentForPackage() takes time, so dont let it block UI unless we really need it
getLaunchIntentForPackage() takes time, so we try to avoid it
add TODO mark
extract dimens for further refactor
extract method for further refactor
inflate entry in Java codes, instead of from xml ---- for performance.

it improve the "reserveViews()" from 1500 ms to 500 ms
adjust text size so that it can be shown, also the entry:s layout height actually is WRAP_CONTENT from the beginning
text view center horizental aligned
because view rendering becomes quicker, and because we dont query empty intent, now we can get the whole list in one time.
move the entry inflating from layoutOperator to adapter
update ui in 2 groups : the 1st is visible to user, 2nd is delay updated.
initialize layout in 2 groups

but each group should only change layout once, for performance issue
---- changing layout is slow
inflate entry from xml back.

after a seri of test, I found
inflate from xml: better UX, easier to maintain, lower performance
inflate from Java: better performance, but the UI is bad.
I didnt find a way to let the inflating from java codes behaves exactly
same as from xml.
Then I tried to inflating from xml, and suprisingly found out that
after my strategy to seperate entries to 2 groups, the over all
performance of inflating from xml is acceptable.
So I decided to return back to the way of inflating entry from xml.

But perhaps when I have time, I should investigate why the UI inflated
from java codes is not same as that from xml.
should check "isCancled()" regularly for asynctask
apply GPL license
version name
v1.12 place holder