About Android development experience-few people will tell you the basic knowledge about Android development and about android development experience
This article introduces some basic knowledge about Android development, mostly process, terminology, and solutions to problems.
I. Software Development Process
A complete software development process cannot be separated from seven steps: planning, interaction, vision, software, testing, maintenance, and operation. These seven steps are not isolated, they are the premise for developing a successful product, but each item can also form a discipline and be an independent position. With the popularity of agile development, and in the era where experience is king, modern software development focuses more on efficiency and agility, rather than following these development processes. For example, the position of software development is no longer just a technical position, it needs to participate in the preliminary design and review, and provide its own insights in terms of vision and interaction. in the development process, it needs self-testing programs to solve existing problems as soon as possible, software help is also required during operation and maintenance. It can be seen that modern software development has a higher and higher overall quality for developers (this is not the full stack engineer described by facebook). It is obviously unreasonable to call itself a code farmer or programmer, because this process is both mental labor and physical brain, it is more reasonable to call yourself an engineer.
Planning: requirement collection (acquisition of requirements through user research, gray release, big data analysis, competitive product analysis, and leader shoot head) and requirement sorting (categorization and priority assignment), convert the requirements into solutions (output design documents );
Interaction: From the Perspective of Psychology (exploiting the weakness of human nature), humanization (MIND), and personalization, the solution is transformed into interactive functions and interfaces (interactive documents need to be output ), for example, loading waiting, message prompts, page layout, interaction logic between pages and pages, page switching animation, etc. During this process, Axure or PowerPoint is generally used to create interaction documents;
Visual: based on interaction graphs, PhotoShop is used for visual effects. on Android, most of the image formats are png and jpg. Screen adaptation is required, the program can be used to adapt to the screen, in the format of * .9.png.
Software: The requirement is transformed into a specific implementation based on the visual and interactive effects. during the implementation process, the software implementation may change due to the requirement, interaction, or visual changes, because information may be distorted in every aspect of planning, interaction, and vision, or the software is always passive due to changes in the market environment, inaccurate information retrieval, and head shots by leaders, therefore, agile development, peer programming, program design, peer review, and unit testing will be promoted to improve program flexibility and stability;
Testing: after the software meets the interoperability standard, it is necessary to provide testing for interactive programs, including gray release (user testing), self-testing (Development self-testing), and SQA (Quality Assurance) all are tests;
Maintenance and operation: after the test program meets the stable standards, the software can be launched. After the software is released, it needs to be maintained, problems reported by users should be solved in a timely manner, and users should be answered in a timely manner if they have any questions. According to the background statistics, users should seize operational holidays and ethnic culture needs to be operated to increase the viscosity of their products, so that more users can know and use products.
Note:
1. Check the answer to learn the specific process from idea to launch of an APP. How hard is it to develop an APP?
2. You can view the article about the birth of a mobile phone (tablet or other electronic products) and the birth process of a mobile phone.
Ii. Wisdom of inquiry
Most jobs are result-oriented, especially in the software development profession. Performance Appraisal and KPI are all the results of your work. Therefore, you need to be able to solve problems in your work, as for learning this thing, do it out of work. I have two suggestions for improving the problem solving capability:
Learning and thinking: the process of learning must coexist in breadth and depth, android Application Development itself does not have high technical skills (because many underlying things are encapsulated by google, frameworks, and open-source code, most of the time, you only need to check whether the ReadMe or API knows how to use it.) More importantly, when you encounter a problem, you need to know how and how the problem can be solved. I want to read the book, but it is helpful to visit forums, QQ groups, Github, StackOverflow, and CSDN blog columns.
Learn to ask questions: You have many resources around you, such as colleagues, StackOverflow, QQ technology exchange groups, and search engines. When you encounter problems, you can use the resources around you to solve the problems, if a problem cannot be solved by myself within an hour, I will use the search engine, Github, QQ technical exchange group, colleagues, and StackOverflow (the above sorting is based on priority) to solve it. If you need a good answer, you need to have a good question, especially in the QQ group or forum. During the question process, you need to reflect your thoughts, the problems that can be solved through the search engine are determined not to ask others. This is a respect for others. Here we recommend several links, which will be of great help to you:
How to make good use of Google and other search engines?
How Should programmers ask questions?
Wisdom of inquiry
Smart Questions
3. Solutions to bugs
In order to write this item, I specifically raised a question in zhihu: What bugs do you have?
Before you know How to quickly fix a bug, you need to know what a bug is. No function is required to complete planning, interaction, and vision. This is not a bug. This is a functional defect. A function cannot be used normally after completion, nor is it a bug, because it has not yet reached the testable standard. I think a bug is discovered when your program reaches the testable standard. Based on my own experience in solving bugs and my answers, I would like to summarize the common methods for solving bugs. (The premise for you to efficiently solve bugs is that you can quickly locate the defects, most of the following methods are about how to quickly locate the problem. To solve the bug, you need to modify the program yourself ):
I breakpoint debugging:
Take Eclipse as an example:
1. breakpoint:
(1) breakpoint:
(2) Clear the breakpoint:
2. There are two ways to start the debugging mode:
(1) Start the debugging program through debug as: Right-click the project name --> Debug AS --> Android Application --> simulator or a real opportunity to pop up ...... watching for the debugger ...... in the prompt box, do not click to wait for it to automatically disappear --> now the debugging mode has been entered, and the operating program reaches the place where the breakpoint is hit.
(2) When the program is running, select the program to be debugged in the DDMS view and start the debugging mode:
3. debugging: Try the shortcut keys for debugging F5, F6, F7, and F8;
4. watch member variable: during debugging, for example, when you execute a program such as for, while, do while LOOP, recursion, and system callback, you can use watch to observe the changes in the member variables or return values of methods. watch's method:
Note: