Out of work for more than half a year, there is no good to explain, say that their six months of Android development experience.
1.IDE
over the past six months, from Eclipse to Android Studio, we've experienced two Ides and made a simple comment here.
If you really want to say that Android Studio is basically to win Eclipse, at least Android studio will not like Eclipse Card, the company's computer is a slag point, 64-bit, wein7, only 4 g of memory, running Eclipse run for a long time is a nightmare.
Android Studio's smart tips are much stronger than Eclipse, and shortcut keys are also powerful. As for the organizational structure of the project, the gap between Android studio and Eclipse is still very large, but it is not customary to feel anything, either.
One of the bad parts of Android studio is that you can't display multiple projects in the same window, so you can only open one more ...
Android Studio was built with Gradle, and the first build was insane ... If you don't have a VPN, you can't even think about it ... Built on, eclipse is faster than Android studio, but Android studio guides third-party libraries easily, writing a gradle script on line, and more flexible in configuration. It can be said that eclipse is to help us build a house, as long as we are familiar with it, and Android studio let us use the tools to set up their favorite house.
More importantly, the AAR package can only be built by Android Studio, and Google is now advocating the way is the AAR package, so the future open source projects are likely to be the AAR package, and basically, most of the open source projects have been built using Gradle ...
A bad place for Android studio is to upgrade too fast, in half a year, I upgraded from 0.8.1 to 1.0 ... Hateful is, every upgrade, Gradle also upgrade, and also dating ... Although the official version is now stable, because idea has a new version, but I have tried 1.0 accident, directly withdrew 0.9.4 ...
Overall, Android development in the future must have been abandoned by the official Android studio or idea,eclipse ...
2. Version control tools
I use SVN less, and just when I was at work, I just switched to git, but there was a change in how Git was used.
Starting with git, like SVN, a master branch, everyone pushes up, and once something goes wrong, everyone is stuck ... Later using Sourcetree to do management, branch switch, commit and resolve conflicts much better. Now the development pattern is this:
The Master branch is a formal branch, which does not push things up until it is stable, the Dev branch is a development branch, and everyone has a dev branch locally, so you can open as many branches locally as you want, so there's no way the master branch can't be published. Because the Master branch is always correct.
Unfortunately, because of the use of tools, although the command line is not familiar with ...
3. Database
The database started with the native, wrote a lot of helper, and just save the table, has written a lot of code, a set into the ... Later replaced by the object database Litepal, much better, but the efficiency of Litepal itself is the original One-third, but the basic situation is enough ... However, you must look directly at the Litepal feature support is not perfect, initially does not support the index, the later version is supported, and in many cases, the use of SQL statements is more convenient than using Litepal interface method, Litepal lookup data is based on that self-growing ID .... As long as a little change, litepal is still very useful, especially when the object is built, the table is built, especially convenient, there is also a database upgrade is very convenient. But there are some places in Litepal, for example, the Boolean field of a table must be obtained through the Isxx method, not the Setxx method ...
There is a bad place is that you can directly manipulate the table object, so it is possible to save the data do not want to be stored in the table, so it is encapsulated, can not directly manipulate the object, but the operation of the entity object, the operation of the database is through the Entity object interface method, and the interface method calls the Table object method.
4. Network libraries and asynchronous libraries
This part of the work is not I do, but can still say.
The first is the network library of their own encapsulation, but the encapsulation is too complex, difficult to maintain, and it is not a simple network library, is a network asynchronous and local asynchronous implementation of the library, based on a large number of callbacks, the use is good.
Later replaced by volley, but found that the implementation of volley not too satisfied with our requirements, the okhttp will be volley the bottom of the change, and then the upper interface form of the link to call the way, the form of code more simple.
The native asynchronous asnytask is simply a pit, it is a task queue, multiple task execution is not concurrent, it may be stuck in one of them can not come out ... Try to jump in when the debug is not out of the ... Later, I wrote one, and also the use of a chain call interface form.
5. Events
The use of Eventbus as an event management is simply cool. Simple to cross-threading, cross-component communication, many of the previously complex to achieve the function can be realized at once.
6.UI
UI, it is difficult to talk about one aspect, the use of butterknife to reduce the workload, and basically using component ideas, can be extracted from the components of the component, easy to replace, and form, near and MVVM, can be written for business logic unit test, The reason is that the logic business is viewmodel.
Generally speaking, this is the case, and there is time to elaborate on the specific aspects later.
Android Development Summary